EJB 3.1 引入非同步會話 Bean 方法呼叫。以 @Asynchronous 標記方法(或部署描述符指定),呼叫端可立即返回繼續其他工作,不阻塞等待。
非同步方法可回傳 void 或 java.util.concurrent.Future<V>。Future<V> 封裝結果,提供 get() 取得值、檢查異常、取消執行。AsyncResult<V> 為內建實作。
@Stateless
public class CalculatorBean implements CalculatorService {
@Asynchronous
public Future<Integer> performCalculation(...) {
// ... 執行計算
Integer result = ...;
return new AsyncResult<Integer>(result);
}
}
相關參考同上。