CommonJ最初是在JSR 237下提出的,JSR 237在2008年被撤销并合并到Java EE平台的JSR 236 Concurrency Utilities中.请注意,这意味着CommonJ提议的标准和API发生了重大变化.名称CommonJ被删除,新包在javax.enterprise.concurrent下,而不是commonj.timers和commonj.work,原始类TimerManager,Timer和TimerListener被非对应的接口/类替换,包括ManagedScheduledExecutorService,ManagedTask, ManagedTaskListener,Trigger.
后者JSR 236最近通过了公众审查,因此很快就会成为标准.截至2012年11月,它是Java EE 7规范(JSR 342)下的初步候选者,但是一旦342最终确定并发布,这将得到确认.
因此,CommonJ存在以下问题:
我建议你使用EJB 3.0定时服务,如果它满足你的需求.
与 CommonJ Timer Manager 相比,EJB 3.0 中的 TimerService 有一定的限制。例如,它需要样板代码和特定于容器的配置来实现灵活的任务调度。通过在 EJB 3.1 中引入 @Scheduled 注释,这一过程得到了简化。
如果您坚持使用 EJB 3.0 并且需要轻松灵活地配置任务调度,CommonJ Timer Manager API 是一个可行的选择。
此外,Spring Framework 中的任务调度程序 (org.springframework.scheduling.TaskScheduler) 在抽象计时器管理器 API 方面做得很好,并允许使用 cron 表达式进行声明性配置。
| 归档时间: |
|
| 查看次数: |
4643 次 |
| 最近记录: |