Skip to content

Add Quartz.NET recurring (cron) jobs via Bussig.Quartz#15

Draft
elmaxe wants to merge 1 commit into
mainfrom
claude/quartz-cron-jobs-r76jz2
Draft

Add Quartz.NET recurring (cron) jobs via Bussig.Quartz#15
elmaxe wants to merge 1 commit into
mainfrom
claude/quartz-cron-jobs-r76jz2

Conversation

@elmaxe

@elmaxe elmaxe commented Jun 9, 2026

Copy link
Copy Markdown
Owner

Introduce an opt-in Bussig.Quartz package that adds scheduled recurring jobs built on Quartz.NET, mirroring the existing add-on package pattern.

  • AddBussigQuartz(IConfiguration, configure) wires up a clustered Postgres AdoJobStore so each occurrence fires exactly once across all instances.
  • Two job models: AddRecurringMessage publishes a message handled by the normal IProcessor pipeline; AddRecurringJob invokes an IRecurringJob handler directly in a DI scope.
  • Per-environment schedules: cron/enabled/timezone are read from configuration under Bussig:RecurringJobs:{name}, falling back to a code-supplied default cron.
  • Quartz qrtz_ tables are created idempotently on startup in the configured Bussig schema via QuartzSchemaMigrator (embedded quartz_schema.sql).
  • Unit tests (TUnit + Moq) for the configurator, config resolution, and registry; EFCore example and docs updated.

Introduce an opt-in Bussig.Quartz package that adds scheduled recurring
jobs built on Quartz.NET, mirroring the existing add-on package pattern.

- AddBussigQuartz(IConfiguration, configure) wires up a clustered Postgres
  AdoJobStore so each occurrence fires exactly once across all instances.
- Two job models: AddRecurringMessage<T> publishes a message handled by the
  normal IProcessor pipeline; AddRecurringJob<T> invokes an IRecurringJob
  handler directly in a DI scope.
- Per-environment schedules: cron/enabled/timezone are read from
  configuration under Bussig:RecurringJobs:{name}, falling back to a
  code-supplied default cron.
- Quartz qrtz_ tables are created idempotently on startup in the configured
  Bussig schema via QuartzSchemaMigrator (embedded quartz_schema.sql).
- Unit tests (TUnit + Moq) for the configurator, config resolution, and
  registry; EFCore example and docs updated.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants