2015-09-22 27 views
1

我在寫一個服務,每x秒會調用一次REST服務。我可以使用EJB @Schedule註釋以及ScheduledExecutorService來完成此操作。我應該使用ejb @Schedule註釋超過日程執行器

哪一個更好用?爲什麼?

+0

我並不真正瞭解ScheduledExecutorService,但Schedule是EJB規範中定義計時器的顯式方式。所以我認爲如果你使用EJB,這是一條路。請注意,Schedule是基於日曆的,因此您可以說定時器將在每分鐘的每秒的第二秒開始,但可能是一分鐘的最後一次觸發和下一次的第一次觸發之間的延遲不同於x秒。此外,計時器不能保證準確。 – jhyot

+0

@jhyot ScheduledExecutorService是一個ExecutorService,它允許您在延遲之後運行任務,或者在每次執行之間以固定的時間間隔重複執行。 感謝您的解釋。我將使用ScheduledExecutorService的Schedule Annotation intead :) – SpyClown

回答

2

如果你正在編寫一個EJB應用程序,你應該使用Schedule - EJB規範要求EJB should not use threads directly,並且說這樣做可能會導致容器中的錯誤,並且阻止容器有效地管理資源。 作爲交換,使用Schedule可以獲得容器管理和EJB服務的好處。

相關問題