如何使@Schedule方法一次只调用一次

时间:2011-11-17 08:35:42

标签: annotations timeout java-ee-6 ejb-3.1 schedule

我们使用@Schedule EJB注释来启动计划作业每隔x秒执行一次delta SOLR导入。当然,我们希望尽可能减少索引时间。目前我尝试每隔5秒做一次delta。

所以我的问题是:我可以确保只调用一次这个工作吗? 那么让我们说索引持续时间超过5秒,下一个时间表会调用等待直到上一次回来吗?

1 个答案:

答案 0 :(得分:3)

是。您可以将bean设为@Singleton并使用@Lock(LockType.Write)以确保计时器不会并行运行。请注意,LockType.Write是Singleton中的默认值。因此,即使是明确提及注释也不是必需的。