Skip to content

[DSIP-18454][Scheduler] Add Cron and fixed-interval trigger types - #18458

Closed
liang-wenjie wants to merge 1 commit into
apache:devfrom
liang-wenjie:2dev/feat/add-quartz-trigger-type
Closed

[DSIP-18454][Scheduler] Add Cron and fixed-interval trigger types#18458
liang-wenjie wants to merge 1 commit into
apache:devfrom
liang-wenjie:2dev/feat/add-quartz-trigger-type

Conversation

@liang-wenjie

Copy link
Copy Markdown

Was this PR generated or assisted by AI?

YES. The implementation was assisted by AI under human direction and review.

Purpose of the pull request

This pull request implements DSIP #18454 by adding schedule trigger type support to DolphinScheduler. Schedules can now use either the existing Quartz Cron trigger or a fixed interval trigger, with explicit misfire policy control.

Closes #18454

Brief change log

  • Add ScheduleTriggerType and MisfirePolicy enums.
  • Add fixed interval schedule parsing with validation.
  • Persist trigger_type and misfire_policy in schedule entities, mapper SQL, base schemas, and 3.3.2 upgrade DDL.
  • Extend schedule create, update, query, and preview payloads with trigger type and misfire policy fields.
  • Add Quartz SimpleTrigger support for fixed interval schedules.
  • Share misfire policy mapping between CronTrigger and SimpleTrigger builders.
  • Update the UI timing dialog to choose Cron or fixed interval trigger type, configure interval values, configure misfire policy, and preview both trigger types.
  • Add schedule table columns for trigger type and misfire policy.
  • Add unit tests for interval parsing and SimpleTrigger construction.

Verify this pull request

This change added tests and can be verified as follows:

  • mvn -pl dolphinscheduler-common -Dtest=IntervalScheduleTest test
  • pnpm exec prettier --write src/views/projects/workflow/definition/components/timing-modal.tsx src/views/projects/workflow/definition/components/use-form.ts src/views/projects/workflow/definition/components/use-modal.ts src/views/projects/workflow/definition/timing/use-table.ts src/locales/en_US/project.ts src/locales/zh_CN/project.ts
  • pnpm exec eslint src/views/projects/workflow/definition/components/timing-modal.tsx src/views/projects/workflow/definition/components/use-form.ts src/views/projects/workflow/definition/components/use-modal.ts src/views/projects/workflow/definition/timing/use-table.ts src/locales/en_US/project.ts src/locales/zh_CN/project.ts
  • pnpm exec vue-tsc --noEmit
  • git diff --check

Pull Request Notice

Pull Request Notice

@github-actions github-actions Bot added UI ui and front end related backend test labels Aug 3, 2026
@ruanwenjun

ruanwenjun commented Aug 3, 2026

Copy link
Copy Markdown
Member

Could you describe in detail the specific use cases for interval? Is it used in your production environment? I’m not sure of any scenarios that cron can’t handle. As for the misfire policy, I agree it could be added, but we shouldn’t use the current name MisfirePolicy—it’s very hard to read. We may have custom schedulers in the future.

@SbloodyS SbloodyS closed this Aug 3, 2026
@liang-wenjie

Copy link
Copy Markdown
Author

Thanks for the feedback. I have added the concrete production use case and refined the design direction in DSIP #18454.

I agree that the initial SimpleTrigger-based interval design is not sufficient to guarantee waiting for a workflow instance to finish. I will treat this as a completion-aware fixed-delay scheduling problem and clarify the no-overlap, recovery, and next-fire-time semantics before proposing the interval part again.

I will also split the missed-fire policy into a smaller, scheduler-domain-oriented proposal and PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend test UI ui and front end related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[DSIP-][Scheduler] Add Cron and fixed-interval trigger types

3 participants