java 石英调度程序立即启动新作业

2022-09-01 07:12:27

是否可以创建将立即触发的作业?当我希望工作是triggres现在我用当前的日期和时间建立了一个cron表达式字符串 - 我认为它太复杂了,有没有其他方法可以立即触发工作?

提前致谢。


答案 1

是的,使用以下命令立即触发您的作业,而不是等待 Cron 表达式。Trigger

    String jobName = ""; // Your Job Name
    String groupName = ""; // Your Job Group
    Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity(jobName, groupName)
                .startNow()
                .build();

答案 2

在Quartz调度程序中注册的所有作业都由JobKey唯一标识,JobKey由名称和组组成。您可以通过调用计划程序实例的触发器作业(JobKey jobKey)来立即触发具有给定作业密钥的作业。

//Create a new Job 
JobKey jobKey = JobKey.jobKey("myNewJob", "myJobGroup");
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity(jobKey).storeDurably().build();

//Register this job to the scheduler
scheduler.addJob(job, true);

//Immediately fire the Job MyJob.class
scheduler.triggerJob(jobKey);

注意:

  • scheduler是在整个应用程序中使用的计划程序实例。它的 start() 方法在创建后应该已经调用。

  • 该作业是持久作业,无法向其附加任何触发器或 cron。它只能通过调用 triggerJob(JobKey jobKey)以编程方式触发。


推荐