Предоставление значения времени ожидания при использовании @Async для метода, использующего Spring 3.0 - PullRequest
11 голосов
/ 24 сентября 2010

Я просмотрел документацию, но не смог найти способ указать время ожидания для асинхронных операций, порождаемых при использовании аннотированных методов @Async в Spring 3.0.

Есть ли способ сделать это?Я думаю, что это очень важно, когда вы запускаете асинхронные вычисления.

Ответы [ 2 ]

15 голосов
/ 24 сентября 2010

Время ожидания не предоставляется аннотацией @Async, так как время ожидания должно определяться вызывающей функцией, а не самой функцией.

Я предполагаю, что вы ссылаетесь на время ожидания для @Async -аннотированного метода, который возвращает результат. Такие методы должны возвращать экземпляр Future, а метод get() для Future используется для указания времени ожидания.

например,

@Async
public Future<String> doSomething() {
   return new AsyncResult<String>("test");
}

а затем

Future<String> futureResult = obj.doSomething();  // spring makes this an async call
String result = futureResult.get(1, TimeUnit.SECOND);
0 голосов
/ 24 сентября 2010

In @ Асинхронный исходный код не настраивается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...