4

Java EE 中的 Timer Tasks 不是很舒服。是否有任何实用程序可以使用诸如“0 20 20 * *”之类的 cron 语法配置计时器?

我想知道,这是否是使用 Quartzinside(集群)Java EE 应用程序的好方法。根据http://www.prozesse-und-systeme.de/serverClustering.html(德语页面),Quartz 和 Java EE 集群存在限制:

  • JDBC 必须用作 Quartz 的作业存储
  • 仅允许集群关联的 Quartz 实例使用此 JDBC 作业存储
  • 所有集群节点必须同步到瞬间
  • 所有集群节点必须使用相同的quartz.properties 文件

我更喜欢配置计时器服务的更简单方法,而不是非 Java EE 管理的调度程序。

4

1 回答 1

5

Quartz 绝对支持类似 cron 的语法(带有CronTrigger),但您的要求并不明确。也可以看看Jcrontabcron4j


附带说明一下,以声明方式创建类似 cron 的计划以触发 EJB 方法的能力是 EJB 3.1 中 Timer Service 最重要的增强功能之一(使用@Schedule注释)。下面是一个取自EJB 3.1 中的新功能的示例:

@Stateless
public class NewsLetterGeneratorBean implements NewsLetterGenerator {

    @Schedule(second="0", minute="0", hour="0",
                  dayOfMonth="1", month="*", year="*")
    public void generateMonthlyNewsLetter() {
        ... Code to generate the monthly news letter goes here...
    }
}
于 2010-02-01T12:42:25.710 回答