在我的无状态bean中,我有以下几行:
@Schedule(minute="*/2", hour="*")
public void doSomething() {}
我希望每2分钟调用一次这个方法,但是当我部署它时,没有任何反应。此外,如果我将@Schedule放在bean中并且没有客户端调用此bean的任何方法(尚未创建bean实例),容器或其他任何内容每2分钟调用一次该方法吗?
这是我第一次使用@Schedule注释,如果有人能就这些问题给我一些建议,我将非常感激。
致以最诚挚的问候,
James Tran
答案 0 :(得分:1)
Here是来自EE 6 docs的计时器服务的链接。
请注意相关部分 -
当部署包含使用@Schedule或@Schedules注释注释的方法的企业bean时,EJB容器会创建自动计时器。企业bean可以有多个自动超时方法,与程序不同timer,它只允许在企业bean类中使用@Timeout注释注释一个方法。
你可以尝试从ejb-jar.xml进行自动调度,而不是使用@Schedule,如果这有任何区别的话。从它的外观来看,除了尝试
之外,我看不出你如何设置它有什么问题@Schedule(minute="0/2", hour="*")
编辑请参阅下面的@bkails评论。那可能不会给你买任何东西。
答案 1 :(得分:1)
我正在使用带有Java EE 5和GlassFish v2.1的NetBean 6.7.1。在我使用Java EE 6和GlassFish v3.1安装NetBean 7.0.1并使用它来部署我的应用程序之后,@ Schedudu注释最终可以按预期工作。