Java 如何限制在quartz scheduler中触发时仅执行一次作业的cron触发器
在我的quartz调度器中,当cron触发器每20秒触发一次firedin时,我的主类会执行5到6次。我想限制在cron触发器每20秒触发一次时,只执行一次主类 这是我的触发器Java 如何限制在quartz scheduler中触发时仅执行一次作业的cron触发器,java,quartz-scheduler,crontrigger,Java,Quartz Scheduler,Crontrigger,在我的quartz调度器中,当cron触发器每20秒触发一次firedin时,我的主类会执行5到6次。我想限制在cron触发器每20秒触发一次时,只执行一次主类 这是我的触发器 SchedulerFactory sf = new StdSchedulerFactory(); Scheduler scheduler = sf.getScheduler(); JobDetail job = JobBuilder.newJob(Main.class).build(); Date startTime =
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler scheduler = sf.getScheduler();
JobDetail job = JobBuilder.newJob(Main.class).build();
Date startTime = DateBuilder.nextGivenSecondDate(null, 10);
// run every 20 seconds infinite loop
CronTrigger crontrigger = TriggerBuilder.newTrigger().startAt(startTime).withSchedule(CronScheduleBuilder.cronSchedule("0/20 * * * * ?")).build();
scheduler.start();
scheduler.scheduleJob(job, crontrigger);
这是主类方法
主类
我的实际产出是
触发器1-当cron第一次触发时,它将执行3或4次
触发器启动
触发器启动
触发器启动
触发器2-当cron第二次触发时,它将执行6或7次
触发器启动
触发器启动
触发器启动
触发器启动
触发器启动
触发器启动
触发器启动
触发器启动
这个主类被称为6或7次。我想限制这种情况
我的预期产出是
触发器1(前20秒)
触发器启动
触发器2(下一个20秒)
触发器启动
它应该在我的系统上执行一次,我对它进行了测试,它工作得非常好。您可以使用以下模板,并请分享它的输出和一些有关记录器的信息(如果使用) 工作: 这是我的克朗触发器:
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler scheduler = sf.getScheduler();
JobDetail job = JobBuilder.newJob(HelloJob.class).build();
// run every 20 seconds infinite loop
CronTrigger crontrigger = TriggerBuilder.newTrigger().withSchedule(
CronScheduleBuilder.cronSchedule("0/20 * * * * ?")).build();
scheduler.start();
scheduler.scheduleJob(job, crontrigger);
在我的系统上,我对它进行了测试,它工作得非常好。您可以使用以下模板,并请分享它的输出和一些有关记录器的信息(如果使用) 工作: 这是我的克朗触发器:
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler scheduler = sf.getScheduler();
JobDetail job = JobBuilder.newJob(HelloJob.class).build();
// run every 20 seconds infinite loop
CronTrigger crontrigger = TriggerBuilder.newTrigger().withSchedule(
CronScheduleBuilder.cronSchedule("0/20 * * * * ?")).build();
scheduler.start();
scheduler.scheduleJob(job, crontrigger);
第一次正常,但接下来的20秒可能会恢复6次以上检查,我是否正确JiI正在获取此示例:System.out.println(“Hello Quartz!,”+new Date());你好,石英!,2017年7月18日星期二16:14:20你好,石英!,2017年7月18日星期二16:14:40你好,石英!,2017年7月18日星期二16:15:00你好,石英!,2017年7月18日星期二16:15:20我正在使用这个cron表达式0 0/1*1/1*?*每分钟执行一次,但它会第一次执行不止一次ok,但接下来的20秒它可能会执行6次以上检查它,我是否正确JiI我得到了这个例子:System.out.println(“Hello Quartz!”,“+new Date());你好,石英!,2017年7月18日星期二16:14:20你好,石英!,2017年7月18日星期二16:14:40你好,石英!,2017年7月18日星期二16:15:00你好,石英!,2017年7月18日星期二16:15:20我正在使用这个cron表达式0 0/1*1/1*?*每一分钟,但它将执行多次
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler scheduler = sf.getScheduler();
JobDetail job = JobBuilder.newJob(HelloJob.class).build();
// run every 20 seconds infinite loop
CronTrigger crontrigger = TriggerBuilder.newTrigger().withSchedule(
CronScheduleBuilder.cronSchedule("0/20 * * * * ?")).build();
scheduler.start();
scheduler.scheduleJob(job, crontrigger);