| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| Quartz.NET-3.19.0.zip | 2026-07-24 | 49.7 MB | |
| README.md | 2026-07-24 | 4.1 kB | |
| v3.19.0 source code.tar.gz | 2026-07-24 | 5.3 MB | |
| v3.19.0 source code.zip | 2026-07-24 | 5.9 MB | |
| Totals: 4 Items | 60.9 MB | 2 | |
Quartz.NET 3.19.0 is a feature release: it adds node affinity for clustered scheduling, a fluent cron-expression builder, and richer L/LW day-of-month expressions, plus clock-jump resilience and a modernized build and publishing pipeline. The public API is unchanged (all additions are additive), so it is a drop-in upgrade — with two things to note: the new node-affinity columns are an optional schema migration (the feature degrades gracefully without them), and a handful of previously-broken L/LW/W cron expressions now fire correctly (see below).
Highlights
- Node affinity for clustered trigger pinning — pin a trigger to a preferred node with
TriggerBuilder.WithPreferredNode(...); the node is preferred for acquisition but the trigger is still stolen on failover so it is never stranded if that node goes down. Adds optionalPREFERRED_NODE/PREFERRED_NODE_AUTOcolumns for ADO.NET job stores (database/schema_30_add_preferred_node.sql); when the columns are absent the scheduler logs a warning and behaves exactly as before. (#3013, [#3144]) - Fluent
CronExpressionBuilder— compose cron expressions programmatically, one field at a time, instead of hand-writing the string — handy when a schedule is assembled from user input such as a scheduling UI. (#3139) LandLWcombinable with other day-of-month values — the day-of-month field now accepts expressions such as1,15,Land the newLW-n/L-nWgrammar. This also corrects several previously-buggy edge cases:29W/31Wno longer silently skip short months,L-30Wno longer throws mid-schedule, and1,15Wnow appliesWto each day rather than only the first. These corrections change the fire times of a few expressions that were previously broken — review any storedL/LW/Wday-of-month expressions. (#2759)- Resilience to system clock jumps — the misfire handler and cluster manager now clamp their sleep intervals after the system clock jumps forward or backward, so a clock step no longer causes a busy-spin or an absurdly long sleep. (#3147, fixes [#1508])
- Modernized build & publishing — the build orchestrator moved from the unmaintained NUKE to Fallout (#3163), and packages now publish to nuget.org via GitHub OIDC trusted publishing rather than a stored API key. Dependencies were also refreshed (#3151).
Note for CronScheduleBuilder users: AtHourAndMinuteOnGivenDaysOfWeek / WeeklyOnDayAndHourAndMinute now emit textual day-of-week names (e.g. MON,WED rather than 2,4). The schedules are identical, but the generated CRON_EXPRESSION string differs — relevant only if you compare stored cron strings byte-for-byte.
What's Changed
- Serve Blazor plumbing under custom DashboardPath for prefix-forwarding reverse proxies (3.x) (#3134) by @lahma in https://github.com/quartznet/quartznet/pull/3137
- Add fluent CronExpressionBuilder for building cron expressions programmatically (3.x) by @lahma in https://github.com/quartznet/quartznet/pull/3139
- Support for specifying 'L' and 'LW' with other days in day-of-month field by @lahma in https://github.com/quartznet/quartznet/pull/2759
- Add preferred node (node affinity) for cluster trigger pinning by @lahma in https://github.com/quartznet/quartznet/pull/3013
- Store auto-pin as a flag column instead of an "auto:" name prefix by @lahma in https://github.com/quartznet/quartznet/pull/3144
- Clamp misfire handler and cluster manager sleeps after system clock jumps (#1508) by @lahma in https://github.com/quartznet/quartznet/pull/3147
- Update packages and cleanup by @lahma in https://github.com/quartznet/quartznet/pull/3151
- Migrate the build from NUKE to Fallout (3.x) by @lahma in https://github.com/quartznet/quartznet/pull/3163
- Exclude the build orchestrator from SonarQube analysis (3.x) by @lahma in https://github.com/quartznet/quartznet/pull/3166
- Prepare v3.19.0 release by @lahma in https://github.com/quartznet/quartznet/pull/3169
Full Changelog: https://github.com/quartznet/quartznet/compare/v3.18.2...v3.19.0