2

在我的无状态 bean 中,我有以下几行:

@Schedule(minute="*/2", hour="*")
public void doSomething() {}

我希望这个方法每 2 分钟调用一次,但是当我部署它时,什么也没有发生。此外,如果我将 @Schedule 放在一个 bean 中并且没有客户端调用该 bean 的任何方法(尚未创建 bean 实例),容器或任何东西会每 2 分钟调用一次该方法吗?

这是我第一次使用@Schedule 注释,如果有人能就这些问题给我一些建议,我将不胜感激。

最好的祝福,

詹姆斯·特兰

4

2 回答 2

1

是 EE 6 文档中有关计时器服务的链接。

注意相关部分——

当部署包含使用@Schedule 或@Schedules 注释注释的方法的企业bean 时,EJB 容器会创建自动计时器。一个企业 bean 可以有多个自动超时方法,这与编程计时器不同,它只允许在企业 bean 类中使用 @Timeout 注释进行注释的一个方法。

如果有任何不同,您可以尝试从 ejb-jar.xml 进行自动调度,而不是使用 @Schedule。从外观上看,我看不出您的设置有什么问题,除非您尝试一下

@Schedule(minute="0/2", hour="*")

编辑见下面@bkails 的评论。那可能不会给你买任何东西。

于 2011-08-10T16:03:47.240 回答
1

我将 NetBean 6.7.1 与 Java EE 5 和 GlassFish v2.1 一起使用。在我安装了带有 Java EE 6 和 GlassFish v3.1 的 NetBean 7.0.1 并使用它来部署我的应用程序之后,@Schedule 注释终于可以按预期工作了。

于 2011-08-11T20:04:38.827 回答