【问题标题】:Schedule a Cron like job in EJB在 EJB 中安排类似 Cron 的作业
【发布时间】:2019-04-18 21:06:23
【问题描述】:

我有以下 EJB,它正在以固定延迟安排“MyJob”。

@Startup
@Singleton
public class Scheduler {

    static final long INITIAL_DELAY = 0;
    static final long PERIOD = 5;

    @Resource
    ManagedScheduledExecutorService scheduler;

    @PostConstruct
    public void init() {
        this.scheduler.scheduleWithFixedDelay(new MyJob(), INITIAL_DELAY, PERIOD, TimeUnit.SECONDS);
    }

}

我想用类似 cron 的表达式来安排这个工作,我如何在不使用 Quartz 或任何其他框架的情况下实现这个?

编辑: 更具体地说 - 我希望像 cron 这样的表达式是属性驱动的。我想动态创建调度程序,这样我就不必为多个批处理作业创建多个 bean。

【问题讨论】:

    标签: java jakarta-ee java-batch


    【解决方案1】:

    您可以使用@Schedule API:

    @Schedules({
                @Schedule(month = "5", dayOfMonth = "20-Last", minute = "0", hour = "8"),
                @Schedule(month = "6", dayOfMonth = "1-10", minute = "0", hour = "8")
        })
        private void plantTheCorn() {
            // Dig out the planter!!!
        }
    

    查看这个问题和答案:Have an EJB schedule tasks with "crontab syntax"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      相关资源
      最近更新 更多