我必须为WebLogic实现一个简单的(而不是集群的)定时器,而且似乎有两个不同的“标准”选项
(CommonJ)
是否有人对使用CommonJ TimerManager和在WebLogic 10.0中使用EJB3 TimerService有任何建议?
谢谢。
发布于 2012-01-09 16:29:01
EJB3.0中的TimerService与CommonJ计时器管理器相比有些限制。例如,它需要样板代码和特定于容器的配置来实现灵活的任务调度.通过在EJB 3.1中引入@Scheduled注释,简化了这一点。
如果您坚持使用EJB3.0,并且需要轻松灵活的可配置任务调度,那么CommonJ计时器管理器API是一个可行的选择。
此外,Spring中的任务调度程序( Task )在抽象计时器管理器API方面做得很好,并允许使用cron表达式进行声明性配置。
发布于 2013-02-23 02:47:25
CommonJ最初是在JSR 237下提出的,2008年被撤回,并合并到Java平台的JSR 236并发实用程序中。请注意,这意味着与CommonJ提议的标准和API相比有了重大变化。名称CommonJ被移除,新包位于javax.enterprise.concurrent下,而不是commonj.timers和commonj.work,而原来的类TimerManager、Timer和TimerListener被非对应的接口/类(包括ManagedScheduledExecutorService、ManagedTask、ManagedTaskListener、触发器)所取代。
后者的JSR 236最近通过了公众审查,因此应很快成为一个标准。截至2012年11月,它是Java 7规范(JSR 342)中包含的初步候选程序,但这将在342完成并发布后得到确认。
因此,CommonJ存在以下问题:
更加复杂。
如果EJB3.0计时器服务满足您的需要,我建议您使用它。
发布于 2011-07-08 11:29:38
是的,如果TimeService特性涵盖了您的需求,那么使用它--它是Java标准的一部分!如果不是绝对必要的话,为什么要使用另一个库。
https://stackoverflow.com/questions/6607101
复制相似问题