Как я могу вернуть объект Future с помощью Spring без написания логики параллелизма? - PullRequest
4 голосов
/ 25 мая 2010

Как я могу вернуть объект java.util.concurrent.Future с объектом Receipt и использовать только аннотацию @javax.ejb.Asynchronous?

А мне нужна дополнительная конфигурация, чтобы Spring мог обрабатывать аннотации ejb?

Я не хочу сам писать логику параллелизма.

Вот моя попытка, которая не работает:

@Asynchronous
public Future<Receipt> execute(Job job) {
    Receipt receipt = timeConsumingWork(job);
    return receipt;
}

1 Ответ

6 голосов
/ 25 мая 2010

Если ваша конфигурация верна, все, что вам нужно сделать, это вернуть новый AsyncResult объект с квитанцией в качестве входного параметра.

@Asynchronous
public Future<Receipt> execute(Job job) {
    Receipt receipt = timeConsumingWork(job);
    return new AsyncResult<Receipt>(receipt);
}

Пружина обрабатывает @Async и @Asynchronous с элементом <task:annotation-driven />.

...