0
我只是在Spring框架中嘗試了一下異步的可能性,我問自己如何在異步函數調用完成時得到通知。有沒有回調功能或類似的東西?如何從Spring的異步函數調用中獲取值?
我只是在Spring框架中嘗試了一下異步的可能性,我問自己如何在異步函數調用完成時得到通知。有沒有回調功能或類似的東西?如何從Spring的異步函數調用中獲取值?
你可以有你@Async
方法返回一個Future
,通過它可以得到的返回值:
@Async
public Future<Something> findSomethingAsync(final int id)
{
Something s = ...
return new AsyncResult<Something>(s);
}
一旦異步方法已經完成,Future
的isDone()
方法是正確的,你可以future.get()
的結果。
乾杯,
好的,我知道之前,但我如何檢查isDone()的值?我必須實現一個循環,它會定期檢查它嗎?或者是否有任何種類的事件,在完成該功能後拋出? –
'future.get()'將會阻塞,直到有結果可用,所以你不需要輪詢... –
它不會錯過目標,調用異步函數並等待其完成或阻止應用程序?我將嘗試實施基於事件的自定義解決方案。 –