gpt4 book ai didi

java Quartz2 cron触发器没有立即触发

转载 作者:行者123 更新时间:2023-12-01 12:32:19 25 4
gpt4 key购买 nike

当我调用调度程序时,我需要立即执行调度程序,下次它将根据 cron 表达式执行。但这里我的代码仅在 10 分钟后执行,但在运行此类/应用程序时不执行。

QuartzConfigure.java用于注册和调用execute方法:

public class QuartzConfigure {

public static void main(String args[]) throws Exception {
// specify the job' s details..
JobDetail job = JobBuilder.newJob(QuartzSchduleJob.class)
.withIdentity("testJob")
.build();

//this is specify using chron expression using chrone expression
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("Group2")
.withSchedule(CronScheduleBuilder.cronSchedule("0 /10 * * * ?"))
.startNow().build();

//schedule the job
SchedulerFactory schFactory = new StdSchedulerFactory();
Scheduler sch = schFactory.getScheduler();
sch.start();
sch.scheduleJob(job, trigger);
}
}

QuartzSchduleJob.java 用于作业:

public class QuartzSchduleJob implements Job {

@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("calling jobSchedulling::"+System.currentTimeMillis());
}
}

最佳答案

使用您当前的代码,您的“调度程序”在 sch.start() 之后立即启动,所以我猜您想知道如何在“调度程序”启动时强制触发您的作业。

如果是这样,您无法仅使用 cron 表达式来实现此目的,但我为您提供了两个解决方案。

  1. 如果您希望作业在开始时触发,然后每十分钟触发一次,请考虑使用 SimpleScheduleBuilder。在您的代码中,替换 CronExpressionSchedule :

    Trigger trigger = TriggerBuilder.newTrigger()
    .withIdentity("trigger1", "Group2")
    .withSchedule(ScheduleBuilder.simpleSchedule()
    .withIntervalInMinutes(10)
    .repeatForever())
    .startNow()
    .build();
  2. 如果您希望作业在开始时触发,然后根据您的 Cron 表达式进行调度。考虑使用第二个触发器:

    [...]
    Trigger trigger2 = TriggerBuilder.newTrigger()
    .withIdentity("trigger2", "Group2")
    .withSchedule(ScheduleBuilder.simpleSchedule())
    .startNow()
    .build();
    [...]
    sch.start();
    sch.scheduleJob(job, trigger);
    sch.scheduleJob(job, trigger2);

关于java Quartz2 cron触发器没有立即触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25843425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com