java - 在 EJB 中安排类似 Cron 的作业

标签 java jakarta-ee java-batch

我有以下 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。

最佳答案

您可以使用@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"

关于java - 在 EJB 中安排类似 Cron 的作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55703026/

相关文章:

java - 如何协调部署到 WebLogic 集群中多个服务器的单个 ejb 计时器?

servlets - 如何在 JavaEE 响应后执行代码

junit - JSR :352 Unit testing Java Batch Code?

带分区的 Java Batch Step 返回错误的 batchStatus 和 exitStatus

java - 在 Java 中将包含 64 位的二进制字符串转换为十六进制?

java - HTTPUrlConnection 和 application/octet-stream 内容类型响应处理

java - InitialContext 的 OSGi 和 ClassNotFoundException

java - HIbernate 多对多与 self 实体使用注释

java - JSR352 - 单个项目读取,多个项目写入

java - 如何使用JAVA从html页面获取表格