Java EE 5 的 Cron 语法?
Java EE 中的计时器任务不太舒服。是否有任何实用程序可以使用 cron 语法(如“0 20 20 * *”)配置计时器?
我想知道这是否是使用 Quartzinside(集群)Java EE 应用程序的好方法。根据 http://www.prozesse-und-systeme.de/serverClustering.html< /a>(德语页面)Quartz 和 Java EE 集群存在限制:
- 必须将 JDBC 用作 Quartz 的作业存储
- 仅允许集群关联的 Quartz 实例使用此 JDBC 作业存储
- 所有集群节点必须同步到瞬间
- 所有集群节点必须使用相同的quartz.properties 文件
我更喜欢一种更简单的方法来配置计时器服务,而不是非Java EE 管理的调度程序。
Timer Tasks in Java EE are not very comfortable. Is there any util, to configure timer with cron syntax like "0 20 20 * * "?
I wonder, if it would be a good way to use Quartzinside (clustered) Java EE application. According to http://www.prozesse-und-systeme.de/serverClustering.html (german page) there limits with Quartz and Java EE clustering:
- JDBC must be used as job store for Quartz
- Only cluster associated Quartz instances are allowed to use this JDBC job store
- All cluster nodes must be synchronized to the split second
- All cluster nodes must use the same quartz.properties file
I would prefer an easier way for configuration of timer service, instead an not Java EE managed scheduler.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Quartz 绝对支持类似 cron 的语法(使用
CronTrigger
< /a>)但你的要求不明确。也可以看看 Jcrontab 或 cron4j。附带说明一下,以声明方式创建类似 cron 的计划来触发 EJB 方法的能力是 EJB 3.1 中计时器服务最重要的增强功能之一(使用
@Schedule
注释)。下面的示例取自 EJB 3.1 中的新功能:Quartz definitely support cron-like syntax (with the
CronTrigger
) but your requirements are not clear. Also maybe have a look at Jcrontab or cron4j.As a side note, the ability to declaratively create cron-like schedules to trigger EJB methods is one of the most important enhancement of the Timer Service in EJB 3.1 (using the
@Schedule
annotation). Below, an example taken from New Features in EJB 3.1: