Skip to content

Sa.Schedule: move cron parsing out of Engine into dedicated Cron namespace - #26

Merged
dundich merged 1 commit into
mainfrom
rev
Oct 2, 2026
Merged

dundich merged 1 commit into
mainfrom
rev

Conversation

@dundich

@dundich dundich commented Oct 2, 2026

Copy link
Copy Markdown
Owner

Refactor the cron scheduling pieces so the parser and timing live in Sa.Schedule.Cron instead of Sa.Schedule.Engine:

  • Move CronTiming from Engine to Cron/, splitting field parsing into CronFieldParser + CronField, and adding a dedicated CronParseException.
  • Simplify IJobTiming.GetNextOccurrence to a single argument (drop the unused IJobContext parameter); update JobController, tests accordingly.
  • Add WithCron on JobProperties and a CronTimingAdapter bridge so the builder wiring keeps working against IJobTiming.
  • Drop the now-redundant Engine.JobTiming, add Settings.JobTiming.
  • Add detailed EN/RU cron docs under Cron/ and link them from the READMEs.
  • Update tests: single-arg calls, empty-expression throws CronParseException, and relaxed invalid-range assertions.

…space

Refactor the cron scheduling pieces so the parser and timing live in
Sa.Schedule.Cron instead of Sa.Schedule.Engine:

- Move CronTiming from Engine to Cron/, splitting field parsing into
  CronFieldParser + CronField, and adding a dedicated CronParseException.
- Simplify IJobTiming.GetNextOccurrence to a single argument (drop the
  unused IJobContext parameter); update JobController, tests accordingly.
- Add WithCron on JobProperties and a CronTimingAdapter bridge so the
  builder wiring keeps working against IJobTiming.
- Drop the now-redundant Engine.JobTiming, add Settings.JobTiming.
- Add detailed EN/RU cron docs under Cron/ and link them from the READMEs.
- Update tests: single-arg calls, empty-expression throws
  CronParseException, and relaxed invalid-range assertions.
@dundich
dundich merged commit c33928a into main Oct 2, 2026
0 of 2 checks passed
@dundich
dundich deleted the rev branch October 2, 2026 13:01
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.

1 participant