Download Latest Version Quartz.NET-3.19.1.zip (49.8 MB)
Email in envelope

Get an email when there's a new version of Quartz.NET

Home / v3.19.0
Name Modified Size InfoDownloads / 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 optional PREFERRED_NODE / PREFERRED_NODE_AUTO columns 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)
  • L and LW combinable with other day-of-month values — the day-of-month field now accepts expressions such as 1,15,L and the new LW-n / L-nW grammar. This also corrects several previously-buggy edge cases: 29W/31W no longer silently skip short months, L-30W no longer throws mid-schedule, and 1,15W now applies W to each day rather than only the first. These corrections change the fire times of a few expressions that were previously broken — review any stored L/LW/W day-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

Full Changelog: https://github.com/quartznet/quartznet/compare/v3.18.2...v3.19.0

Source: README.md, updated 2026-07-24