У меня есть метод активности, который я хочу запустить в асинхронном режиме. Я попробовал использовать Async. метод процедуры для асинхронного запуска действия, но поскольку это был последний оператор рабочего процесса, он был запланирован, но не выбран. Есть ли способ дождаться, пока действие будет выбрано?
Вот пример кода
private final MyActivity myActivity = Workflow.newActivityStub(MyActivity.class, activityOptions);
@Override
public SomeObject execute(Payload payload){
SomeObject someObject = myActivity.methodA(payload);
// Calling some more activities here based on the result of someObject
Async.procedure(myActivity::methodB, payload);
return someObject;
}
С
Async.procedure(myActivity::methodB, payload);
находится непосредственно перед оператором возврата, он запланирован, но не начал выполнение, поскольку рабочий процесс завершился.
Вы можете либо дождаться завершения действия, прежде чем завершать рабочий процесс, либо запустить дочерний рабочий процесс с политикой родительского закрытия = Отмена, который запускает действие (и ожидает его завершения).