【问题标题】:quartz fixed number of times石英固定次数
【发布时间】:2015-09-10 20:04:15
【问题描述】:

我有以下弹簧石英配置。当我每分钟都有工作时,它工作得很好。现在我需要解雇这个工作固定次数(特别是 2 次)。我怎样才能修改我的代码来做到这一点?

@Bean
public SchedulerFactoryBean schedulerFactoryBeanJobOne() {
    schedulerFactoryBean = new SchedulerFactoryBean();
    schedulerFactoryBean.setAutoStartup(false);
    schedulerFactoryBean.setTriggers(procesoJobOneTrigger().getObject());
    schedulerFactoryBean.setJobDetails(procesJobOne().getObject());
    schedulerFactoryBean.setJobFactory(springBeanJobFactory());
    return schedulerFactoryBean;
}

@Bean
public SpringBeanJobFactory springBeanJobFactory() {
    return new AutowiringSpringBeanJobFactory();
}

@Bean
public JobDetailFactoryBean procesJobOne() {
    JobDetailFactoryBean jobDetailFactory = new JobDetailFactoryBean();
    jobDetailFactory.setJobClass(JobOne.class);
    jobDetailFactory.setGroup("quartz");
    return jobDetailFactory;
}

@Bean
public CronTriggerFactoryBean procesoJobOneTrigger() {
    CronTriggerFactoryBean cronTriggerFactoryBean = new CronTriggerFactoryBean();
    cronTriggerFactoryBean.setJobDetail(procesJobOne().getObject());
    // Runs every 60secs
    cronTriggerFactoryBean.setCronExpression("0/60 * * * * ?");
    cronTriggerFactoryBean.setGroup("quartz");
    return cronTriggerFactoryBean;
}

【问题讨论】:

  • 你能更具体点“固定次数”指的是多少
  • 想要解雇工作两次而不是永远

标签: java quartz-scheduler


【解决方案1】:

您的 cron 表达式是您提供作业应该运行的次数的地方

 # * * * * *  command to execute
 # │ │ │ │ │
 # │ │ │ │ │
 # │ │ │ │ └───── day of week (0 - 6) (0 to 6 are Sunday to Saturday)
 # │ │ │ └────────── month (1 - 12)
 # │ │ └─────────────── day of month (1 - 31)
 # │ └──────────────────── hour (0 - 23)
 # └───────────────────────── min (0 - 59)

你可以使用这个:

# m   h   dom mon dow  
  0  14,15 *   *   *    

您的作业将在 14:00 和 15:00 运行,即两次

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    相关资源
    最近更新 更多