All Versions
Latest Version
Avg Release Cycle
70 days
Latest Release
479 days ago

Changelog History

  • v3.0.7

    October 07, 2018

    🚀 This release brings .NET Core 2.1 version of example server and adds new plugin
    🔌 Quartz.Plugins.TimeZoneConverter which allows usage of TimeZoneConverter library to get consistent time zone id parsing between
    🐧 Linux and Windows.

    👷 There are also some bug fixes related to AdoJobStore.


    🛠 FIXES

    • ➕ Added transient codes from EF into new JobStore (#681)
    • Parametrized queries produced by ReplaceTablePrefix should be cached (#651)
    • 👉 Use TypeNameHandling.Auto for JsonObjectSerializer (#621)
    • 🛠 Fix a race condition that could cause duplicate trigger firings (#690)
    • ⏱ ISchedulerListener.JobScheduled not called when scheduling multiple jobs (ScheduleJobs) (#678)
  • v3.0.6

    July 06, 2018

    🚀 This release fixes a nasty bug with JSON calendar database serialization and .NET Core SQL Server client libraries
    ⚡️ have been updated to mitigiate possible hangs when connection drops occur.

    Also some other minor bugs have been also addressed.

    👍 You should now be able to debug into Quartz.NET sources with added SourceLink support.


    • ➕ Add SourceLink support (#642)
    • ⏱ Make JobInterrupted method virtual in class SchedulerListenerSupport (#631)

    🛠 FIXES

    • 🚚 Trigger group can be left as paused when all triggers have been removed (#641)
    • 🏁 PlatformNotSupportedException on RaspberryPi (Windows IoT) (#630)
    • 0️⃣ JSON serialisation returning defaults for derived calendar settings (#634)
    • .NET Core version not able to recover from DB connection drops (#637)
  • v3.0.5

    May 27, 2018

    🚀 This release fixes couple bugs and adds support for .NET Core version of Oracle's managed data access library.


    • 👌 Support Oracle.ManagedDataAccess.Core (#609)

    🛠 FIXES

    • Trigger loop encountered using DailyTimeIntervalTrigger across DST start boundary (#610)
    • 🔧 Missing ConfigureAwait(false) in some parts of code (#618)
  • v3.0.4

    March 04, 2018

    🚀 This release fixes a nasty memory leak caused by QuartzSchedulerThread sharing
    ⬆️ its CancellationTokenSource with calls it makes. Everyone using 3.x is advised to upgrade.

    🛠 FIXES

    • Memory leak caused by CancellationTokenSource sharing (#600)
    • tables_oracle.sql should use NUMBER(19) instead of NUMBER(13) for long properties (#598)
  • v3.0.3

    February 24, 2018


    • ⏱ XML scheduling requires write access to source XML file (#591)
    • 👌 Improve listener error handling (#589)
    • SQL command parameters are not defined in 'IsTriggerStillPresent' method (#579)
    • 🏗 Source distribution couldn't be built with build.cmd/.sh when no .git directory present (#596)
    • 👷 Currently executing jobs cannot be retrieved via remoting (#580)
  • v3.0.2

    January 25, 2018

    🚀 This is a minor fix release that fixes single issue that still prevented full usage of remoting.

    🛠 FIXES

    • Mark ReadOnlyCompatibleHashSet as serializable (#576)
  • v3.0.1

    January 21, 2018

    🚀 This is a bug fix release that fixes cron expression parsing bug and reverts IRemotableQuartzScheduler
    interface back to its original form without Tasks and CancellationTokens - so that's it's actually usable
    through .NET Remoting infrastructure. Now zip packing is also back and includes Quartz.Server.

    🛠 FIXES

    • 🚀 Create zip package as part of release, including Quartz.Server (#572)
    • A specific CronExpression fails with "Input string was not in a correct format." (#568)
    • Cannot use remoting due to Task and CancellationToken signatures (#571)
  • v3.0.0

    December 30, 2017


    • 👷 Task based jobs with async/await support, internals work in async/await manner
    • 👌 Support .NET Core / netstandard 2.0 and .NET Framework 4.5.2 and later
    • 👌 Support for Microsoft.Data.Sqlite via provider name SQLite-Microsoft, the old provider SQLite also still works
    • ➕ Added preliminary support for SQL Server Memory-Optimized tables and Quartz.Impl.AdoJobStore.UpdateLockRowSemaphoreMOT
    • 🚚 Common.Logging removed from dependencies
    • 🚚 C5 Collections removed from ILMerge process, no longer needed
    • ➕ Add support for eager validation of job scheduling XML file on plugin start
    • ➕ Add support for extra custom time zone resolver function in TimeZoneUtil


    • 📦 Jobs and plugins are now in a separate assemblies/NuGet packages Quartz.Jobs and Quartz.Plugins
    • ADO.NET provider names have been simplified, the provider names are without version, e.g. SqlServer-20 => SqlServer
    • API methods have been revisited to mainly use IReadOnlyCollection, this hides both HashSets and Lists
    • LibLog has been hidden as internal (ILog etc), like it was originally intended to be
    • SimpleThreadPool is gone, old owned threads are gone
    • ⏱ Scheduler methods have been changed to be Task based, remember to await them
    • 👷 IJob interface now returns a task
    • Some IList properties have been changed to IReadOnlyList to properly reflect intent
    • 👍 SQL Server CE support has been dropped
    • DailyCalendar uses now datetimes for excluded dates and has ISet interface to access them
    • IObjectSerializer has new method, void Initialize(), that has to be implemented
    • 🚚 IInterruptableJob removed in favor of context's CancellationToken


    • 🐧 Issues with time zone ids between Windows and Linux, they use different ids for the same zone
    • 👍 No remoting support for .NET Core
  • v2.6.2

    May 27, 2018

    🚀 This is a maintenance release fixing some bugs.

    🛠 FIXES

    • trigger loop encountered using DailyTimeIntervalTrigger across DST start boundary (#610)
    • tables_oracle.sql should use NUMBER(19) instead of NUMBER(13) for long properties (#598)
    • ⏱ XML scheduling requires write access to source XML file (#591)
  • v2.6.1

    October 09, 2017

    🚀 This is a maintenance release fixing an issue where misfire handling is being too slow at times.


    • 👍 Allow performing misfire handling more frequently than misfireThreshold (#532)

    🛠 FIXES

    • 👷 Incomplete recovery of misfired jobs when using database-specific delegate types (#531)