1
我有一個包含各種方法的無狀態EJB,我想在一個函數中使用一個計時器,以便如果該方法花費的時間超過了30秒,超時將會發生,呼叫者將被通知。在無狀態EJB方法中使用Timer來超時長時間運行
我已經查看了EJB方法的@Schedule
註釋,但我認爲這不符合我的目的。
我有一個包含各種方法的無狀態EJB,我想在一個函數中使用一個計時器,以便如果該方法花費的時間超過了30秒,超時將會發生,呼叫者將被通知。在無狀態EJB方法中使用Timer來超時長時間運行
我已經查看了EJB方法的@Schedule
註釋,但我認爲這不符合我的目的。
如果您不需要精確度,最快捷的方法是調用標記爲@Asynchronous
的方法,其簽名中會有一個Future
,該方法將在30秒後發送通知。
該方法必須位於另一個EJB上,以使@Asynchronous
正常工作。
然後從呼叫者,如果經過的時間短於30秒,您可以取消操作。