異步會話Bean調用
通過@Asynchronous注解讓一個方法支持異步,也可以使用一個部署描述符將一個方法指定為異步的。
異步方法可以返回一個Java.util.concurrent.Future<V>或void對象,Future<V>對象容納了異步操作返回的結果,你可以訪問Future<V>對象檢索一個結果值,檢查異常或取消一個正在處理中的調用。Future<V>接口提供一個get()方法檢索值,當然,你也可以其它合適的類檢索值,如AsyncResult<V>,實際上它自己實現了一個Future<V>接口。
在下面的例子中,performCalculation()方法是異步的,它使用AsyncResult<V>類檢索Future<V>對象返回的值。
- @Stateless
- Public class CalculatorBean implements CalculatorService {
- ...
- @Asynchronous
- public Future<Integer> performCalculation(...) {
- // ... do calculation
- Integer result = ...;
- return new AsyncResult<Integer>(result);
- }
- }