🚀 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.
🆕 NEW FEATURE
- ➕ Add .NET Core 2.1 version of example server (#682)
- 🆕 New plugin Quartz.Plugins.TimeZoneConverter which allows usage of TimeZoneConverter library (#647)
- ➕ 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)
🚀 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.
🆕 NEW FEATURE
- ➕ Add SourceLink support (#642)
- ⏱ Make JobInterrupted method virtual in class SchedulerListenerSupport (#631)
🚀 This release fixes couple bugs and adds support for .NET Core version of Oracle's managed data access library.
🆕 NEW FEATURE
- 👌 Support Oracle.ManagedDataAccess.Core (#609)
🚀 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.
- ⏱ 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)
🚀 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.
- 👷 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
💥 BREAKING CHANGES
- 📦 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
🚀 This is a maintenance release fixing some bugs.