3
我們正在使用@Schedule
EJB註釋來啓動預定作業,每x秒執行一次delta SOLR導入。當然,我們希望儘可能減少索引中的時間轉換。目前我試圖每5秒做一次增量。如何使@Schedule方法一次僅調用一次
所以我的問題是:我可以確保工作只被調用一次嗎? 因此,假設索引持續時間超過5秒,下一個時間表是否會等待,直到前一個時間回來?
我們正在使用@Schedule
EJB註釋來啓動預定作業,每x秒執行一次delta SOLR導入。當然,我們希望儘可能減少索引中的時間轉換。目前我試圖每5秒做一次增量。如何使@Schedule方法一次僅調用一次
所以我的問題是:我可以確保工作只被調用一次嗎? 因此,假設索引持續時間超過5秒,下一個時間表是否會等待,直到前一個時間回來?
是的。您可以使該bean成爲@Singleton
並使用@Lock(LockType.Write)
來確保定時器不會並行運行。請注意,LockType.Write
是Singleton中的默認值。所以即使明確提及註釋也不是必需的。