We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I sometimes find the scheduler might be duplicate triggered.
This might happen when ProcessScheduleTask has a bad performance or the isolation levels is incorrect or we use incorrect quartz parameters.
ProcessScheduleTask
The said thing is that we don't have any metrics to monitor whether there exist duplicate fired.
Add a new table t_ds_schedule_instance to record the scheduler fired instance.
t_ds_schedule_instance
CREATE TABLE `t_ds_schedule_instance` ( `id` int NOT NULL AUTO_INCREMENT COMMENT 'key', `schedule_id` int NOT NULL, `workflow_instance_id` int NOT NULL, `expect_fire_time` bigint NOT NULL, `actual_fire_time` bigint NOT NULL, `create_time` datetime NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uk_t_ds_schedule_si_eft` (`schedule_id`,`expect_fire_time`) ) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=utf8mb3
Each record in this table represend a success fired of quartz.
Once the scheduler triggered success we will insert a ScheduleInstance, if there exist duplicate record will throw exception from db.
ScheduleInstance
Compatibility with previous version, since the table is newly created.
Test by IT.
The text was updated successfully, but these errors were encountered:
ruanwenjun
No branches or pull requests
Search before asking
Motivation
I sometimes find the scheduler might be duplicate triggered.
This might happen when
ProcessScheduleTask
has a bad performance or the isolation levels is incorrect or we use incorrect quartz parameters.The said thing is that we don't have any metrics to monitor whether there exist duplicate fired.
Design Detail
Add a new table
t_ds_schedule_instance
to record the scheduler fired instance.Each record in this table represend a success fired of quartz.
Once the scheduler triggered success we will insert a
ScheduleInstance
, if there exist duplicate record will throw exception from db.Compatibility, Deprecation, and Migration Plan
Compatibility with previous version, since the table is newly created.
Test Plan
Test by IT.
Code of Conduct
The text was updated successfully, but these errors were encountered: