【问题标题】:How can I run crone Trigger immediately using crone expression in java?如何在 java 中使用 cron 表达式立即运行 cron Trigger?
【发布时间】:2017-03-05 16:00:25
【问题描述】:

下面是我的代码,我想通过 crone 表达式每十分钟运行一次我的工作。 我希望我的工作第一次运行后立即运行,它应该每隔 10 分钟运行一次。我使用的是quartz-2.1.2

JobKey jobKeyA = new JobKey("abc", "abc");

JobDetail jobA = JobBuilder.newJob(ContiniousJob.class)
        .withIdentity(jobKeyA).build();

Trigger trigger3 = TriggerBuilder
        .newTrigger()
        .withIdentity("abc", "abc")
        .startNow()
        .withSchedule(CronScheduleBuilder.cronSchedule("0 0/10  * * * ?"))
        .build();

谢谢。

【问题讨论】:

    标签: quartz-scheduler


    【解决方案1】:

    如果你只想要 10 分钟的间隔,你不需要 CronTrigger,你可以使用 SimpleTrigger:

    Trigger trigger3 = TriggerBuilder
            .newTrigger()
            .withIdentity("abc", "abc")
            .startNow()
            .withSchedule(simpleSchedule()
                .withIntervalInMinutes(10)
                .repeatForever())
            .build();
    

    如果您出于任何原因仍然需要使用 CronTrigger,这应该可以:

    // Trigger to run immediately
    Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("abc", "abc")
                .startNow()
                .build(); 
    Set<Trigger> triggers = new HashSet<>();
    triggers.add(trigger);
    
    // Your CronTrigger
    Date delayedStart = DateUtils.addMinutes(new Date(), 10); 
    Trigger cronTrigger = TriggerBuilder
            .newTrigger()
            .withIdentity("abc", "abc")
            .startAt(delayedStart)
            .withSchedule(CronScheduleBuilder.cronSchedule("0 0/10  * * * ?"))
            .build();
    
    triggers.add(cronTrigger);
    
    // Schedule job with multiple triggers
    scheduler.scheduleJob(job, triggers, false);
    

    一个立即运行的触发器,另一个作为您的 CronTrigger。

    【讨论】:

      【解决方案2】:

      不幸的是,没有机会立即启动 cron。
      我建议在需要启动任务后立即安排任务,并有一段短的延迟期(当前时间 + 1 分钟)。
      尝试测试你的表情here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-23
        • 2018-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-16
        • 1970-01-01
        相关资源
        最近更新 更多