我们使用@Schedule
EJB注释来启动计划作业每隔x秒执行一次delta SOLR导入。当然,我们希望尽可能减少索引时间。目前我尝试每隔5秒做一次delta。
所以我的问题是:我可以确保只调用一次这个工作吗? 那么让我们说索引持续时间超过5秒,下一个时间表会调用等待直到上一次回来吗?
答案 0 :(得分:3)
是。您可以将bean设为@Singleton
并使用@Lock(LockType.Write)
以确保计时器不会并行运行。请注意,LockType.Write
是Singleton中的默认值。因此,即使是明确提及注释也不是必需的。