Bot releases are hidden (Show)
This release aims to modernize targeted platforms and used dependencies.
The System.Configuration.ConfigurationManager
reference from non-framework builds. This means
using App.config's <quartz>
section as Quartz configuration source is only supported on .NET Framework builds. This
change was made to reduce legacy dependencies and to make Quartz more compatible with modern .NET.
The netcoreapp3.1
target has been removed from DI and hosting integration packages which makes NET 6 the lowest supported
modern runtime version for those packages.
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.12.0...v3.13.0
Published by lahma 3 months ago
This release aims to alleviate some problems that have been present then Quartz's own global singletons clash
with DI containers singleton concept when DI container is being torn down during testing. Now both scheduler repository
and DB connection manager are scoped inside DI container and share container's lifetime.
If you want to have multiple service collections sharing same global state, you should manually register IDbConnectionManager
and ISchedulerRepository
to DI as singletons pointing to global object instances.
// add globals before AddQuartz to get old behavior
services.AddSingleton<IDbConnectionManager>(DBConnectionManager.Instance);
services.AddSingleton<ISchedulerRepository>(SchedulerRepository.Instance);
services.AddQuartz(...)
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.11.0...v3.12.0
Published by lahma 3 months ago
MemoryStream
in SystemTextJsonObjectSerializer
by @lahma in https://github.com/quartznet/quartznet/pull/2418
DbDataSource
by @Hawxy in https://github.com/quartznet/quartznet/pull/2439
DirtyFlagMap
enumerator behaviors by @lahma in https://github.com/quartznet/quartznet/pull/2445
checkout/@v4
& cache/@v4
by @jafin in https://github.com/quartznet/quartznet/pull/2451
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.10.0...v3.11.0
Published by lahma 4 months ago
This release adds support for using System.Text.Json
as serializer for JSON payloads stored in database via new integration package Quartz.Serialization.SystemTextJson. Please note that there might be small incompatibilities between Newtonsoft and STJ (de)serialization. If you are using only strings as data values, there should be no compatibility issues. Using the new integration package is ideal for new greenfield projects.
NativeJob
crashing when working directory parameter missing by @viebrix in https://github.com/quartznet/quartznet/pull/2407
NativeJob
to use RuntimeInformation.IsOSPlatform
instead of env var by @lahma in https://github.com/quartznet/quartznet/pull/2411
newtonsoft
as preferred JSON serializer type alias by @lahma in https://github.com/quartznet/quartznet/pull/2412
System.Text.Json
serializer by @lahma in https://github.com/quartznet/quartznet/pull/2416
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.9.0...v3.10.0
Published by lahma 5 months ago
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.8.1...v3.9.0
Published by lahma 8 months ago
This release contains small bug fixes and now the NuGet packages have the much-touted package readmes.
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.8.0...v3.8.1
Published by lahma 11 months ago
This most notably tries to improve Quartz API and metadata to handle NET 8 trimming capabilities better, but there's probably still issues to encounter. When using trimming one should use the strongly-typed MS DI integration and SchedulerBuilder
APIs.
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.7.0...v3.8.0
Published by lahma about 1 year ago
This release has some work pointing people towards more sustainable API usage. Adding .NET 6.0 target for less dependencies.
UseJsonSerializer()
by @lahma in https://github.com/quartznet/quartznet/pull/2077
UseMicrosoftDependencyInjectionJobFactory()
as obsolete, remove UseMicrosoftDependencyInjectionScopedJobFactory()
by @lahma in https://github.com/quartznet/quartznet/pull/2085
QuartzHostedService
from internal
to public
by @rf-0 in https://github.com/quartznet/quartznet/pull/2090
AcquireNextTriggers
when getting timeTriggers
min value by @lahma in https://github.com/quartznet/quartznet/pull/2092
private
and internal
classes sealed
by @lahma in https://github.com/quartznet/quartznet/pull/2098
net6.0
target by @lahma in https://github.com/quartznet/quartznet/pull/2106
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.6.3...v3.7.0
Published by lahma over 1 year ago
To celebrate my daughter's 8th birthday, let's have a maintenance release. This release brings important fix to scoped job dependency disposal which had regressed in 3.6.1 release.
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.6.2...v3.6.3
Published by lahma over 1 year ago
This is fix to a fix release, 3.6.1 introduced a regression to job selection logic when using persistent job store.
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.6.1...v3.6.2
Published by lahma over 1 year ago
❗ This release had a problem, use 3.6.2 instead |
---|
This bug fix release contains an important fix to anyone configuring jobs using job builder's DisallowConcurrentExecution()
without having the attribute DisallowConcurrentExecutionAttribute
on type itself.
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.6.0...v3.6.1
Published by lahma over 1 year ago
This release contains new API to reset errored trigger state in job store, some bug fixes and refinement of package dependencies/targets.
NEW FEATURES
FIXES
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.5.0...v3.6.0
Published by lahma about 2 years ago
NEW FEATURES
PersistJobDataAfterExecution
and ConcurrentExecutionDisallowed
to be explicitly set in JobBuilder
and pulled up to IJobConfigurator
(#1575)TryGet
functions to JobDataMap
and StringKeyDirtyFlagMap
(#1592)UseMySqlConnector
overload for DB configuration (#1621)UsePersistentStore<T> where T : IJobStore
in DI Extension (#1715)FIXES
RAMJobStore.RemoveJobInternal
return true even if job has no triggers (#1580)quartz.jobStore.dbRetryInterval
will be correctly set when constructing the Scheduler JobStore.
quartz.scheduler.dbFailureRetryInterval
please change to the above mentioned key.DailyCalendar
doesn't include first and last millisecond of day in checks (#1665)StdSchedulerFactory
and derived factories are not thread-safe (#1587)QuartzOptions
to inherit from Dictionary<string, string?>
instead of NameValueCollection
to fix Microsoft.Extensions.Configuration 7 RC integration (#1748)IMPROVEMENTS
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.4.0...v3.5.0
Published by lahma over 2 years ago
This release has Quartz jobs start executing only after application startup completes successfully, unless QuartzHostedServiceOptions are used to specify otherwise. By default, this prevents jobs from running while the application is still starting, and it alleviates the need to use arbitrary start delays to achieve the effect manually.
Quartz.OpenTelemetry.Instrumentation has been marked obsolete as there's official contrib project on OpenTelemetry project side.
FIXES
IMPROVEMENTS
BREAKING CHANGES
NEW CONTRIBUTORS
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.3.3...v3.4.0
Published by lahma about 3 years ago
This is a maintenance release mostly fixing some smaller bugs and improving DI API story.
FIXES
IMPROVEMENTS
Published by lahma over 3 years ago
This release returns the possibility to resolve jobs from Microsoft DI container. Now container is checked first and if not found then
ActivatorUtilities is used to construct the type with constructor injection support. Now both AllowDefaultConstructor
and CreateScope
have
been obsoleted as behavior is now either via DI construction or ActivatorUtilities
and scope is always created to prevent resource leaks / double disposal.
Also a problem with host name resolution under WSL2 scenario was fixed.
FIXES
Published by lahma over 3 years ago
This release fixes assembly signing problem introduced in 3.3.
FIXES
Published by lahma over 3 years ago
This release addresses problems with using Quartz with .NET Full Framework lower than 4.7.2. ValueTask loading
could fail due the dependencies brought with activity source support. Now activity sources are only supported when
using .NET Framework >= 4.7.2 and netstandard >= 2.0. This also raises requirement the same way for package
Quartz.OpenTelemetry.Instrumentation.
This release also improves trigger acquisition performance when using persistent job store, mostly by reducing network round-trips.
The semaphore implementations were also re-written to gain more performance.
Also some bug fixes included, thanks to all contributors!
BREAKING CHANGES
net461
build, only net472
Quartz.AspNetCore
integration package minimum .NET Core version is now 3.1 for HealthChecks supportNEW FEATURES
JobInterruptMonitorPlugin
from Java version which allows automatic interrupt calls for registered jobs (#1110)UsingJobData
now has Guid
and char
overloads (#1141)AddJob(Type)
(#1090)FIXES
MicrosoftDependencyInjectionJobFactory
does not inject job properties for scoped jobs (#1106)durable
element if you just want to define recover
(#1128)UseMicrosoftDependencyInjectionScopedJobFactory
(#1120)QuartzHostedService.StopAsync
throws NullReferenceException
if StartAsync
hasn't been run (#1123)Published by lahma over 3 years ago
This release is a maintenance release with couple of bug fixes. The most important fix for this release is that
now Quartz distinguishes between external code task cancellation (say HttpClient
) and job cancellation triggered by using
the Quartz API's Interrupt
method. Earlier Quartz incorrectly considered also other OperationCanceledException
s as clean instead of being errors.
FIXES
JobRunShell
silently handles OperationCanceledException
which is not correct in terms of job retry handling (#1064)FileScanJob
is faling after upgrading from 3.0.7 to 3.2.3 (#1027)JobBuilder.UsingJobData(string key, string value)
should be JobBuilder.UsingJobData(string key, string? value)
(#1025)Published by lahma almost 4 years ago
This release addresses issue with Autofac integration and adds new integration package Quartz.OpenTracing
to allow
integration with OpenTracing.
NEW FEATURE
FIXES