从定时器获取其他信息
我们无法确定定时器到底是单动的还是间隔的,如果他是一个间隔定时器,那么我们也无法确定其时间间隔,或者该定时器是否已经到期过一次了 ,无法获知除下次到期以外的后续到期时间。作为解决这个问题的权宜之计,就是将这些信息放入info对象中。
Stateless session bean 定时器
Stateless session bean 定时器可以用于监控审计或批处理工作。通常是用来管理任务流的。
Stateless session bean可以在业务方法中通过SessionContext来访问注入的定时服务,但是不能在任何用于依赖注入的setter()方法内访问定时服务。客户端必须调用stateless session bean的某个方法才可以设置定时器。
在@PostConstruct回调方法中设置定时器会有问题,
在@PostCreate方法中访问好并删除定时器,会引起性能问题。
永远不应该用@PreDestroy回调方法来取消或创建定时器。
由于没有必要让定时服务跨集群工作,因此在集群中,不同服务器节点上设置的定时器最好是彼此不可见的。
MDB定时器
MDB定时器与Stateless session bean定时器在很多地方都很相似。最主要的不同之处在于它们初始化的方式:MDB定时器是在收到消息时被创建的,或者,如果容器支持的话,也可以依据配置文件来创建。