2015-02-19 2 views
1

Я использую аннотацию @Async в своих методах. Для кода, который делает изолированные вызовы третьей стороне, поведение Async идеально. Но в одном из случаев, когда моя программа работает, я делаю два вызовы третьей стороне как в режиме async. Теперь проблема заключается в том, что я хочу, чтобы вызовы async были сделаны третьей стороне в порядке. Укажите предложение, если это возможно. Я хочу, чтобы async оставался как есть (по мере того, как производительность возникает вызов, вызываемый последовательно) Сообщите мне, требуется ли дополнительная информация.Spring Async с 2 вызовами

+1

Просто поместите два вызова один за другим внутри того же метода, аннотированный с помощью '@ Async' Spring, будет запускать весь метод асинхронно, но два вызова метода будут выполняться в программном порядке. – JamesENL

+0

@JamesMassey, спасибо за предложение. Однако мы все еще хотели иметь методы в режиме Async, есть ли способ 2 асинхронных вызова, выполненных последовательно программами, находятся в режиме заказа при вызове третьей стороне? – Amz

+1

Нет, это целая точка '@ Async'. Если ваш второй вызов должен ждать завершения первого, вы не можете вызывать каждый метод асинхронно. Вы можете вызывать один за другим асинхронно. Если второй вызов не должен ждать завершения первого, просто отметьте как «@ Async» – JamesENL

ответ

1

Я считаю, что если ваш первый метод возвращает Будущее <> вы можете создать новый метод @Async, который вызывает первый метод, а затем ждет завершения. Затем вызовите второй метод и подождите или не ждите его завершения.

Смежные вопросы