SWF: получить результат всех действий в программе запуска рабочего процесса
Я работаю с Amazon-SWF.
У меня есть 4 мероприятия. Все они асинхронные.
Рабочий процесс запускается из внешнего интерфейса с помощью API-интерфейса rest.
Я хочу вернуть результаты всех 4 действий в ответ на вызов API.
Поскольку метод @execute не может возвращать ничего, кроме void, при вызове из внешнего клиента, я не могу получить результат всех 4 действий в моей программе запуска рабочего процесса.
Одним из способов решения этой проблемы было продолжение опроса истории рабочего процесса в стартовой программе, но я действительно не думаю, что это лучшее решение. Итак, каков эффективный способ сделать это? Я уверен, что почти каждый, кто использует amazon-swf, имеет подобный вариант использования.
PS: остальная часть моей программы работает нормально. Я получаю результаты всех действий в реализации решения. Но я просто не могу получить их в программе, которая запустила рабочий процесс.
1 ответ
Стандартный шаблон для запуска специальной активности уведомлений в процессе веб-интерфейса. При запуске рабочего процесса в качестве параметра он получает имя списка задач уведомлений. Затем, по завершении, он планирует действие в указанный список задач. Вызов API ожидает вызова действия, которое доставляет результаты выполнения. Чтобы рабочий процесс не зависал в случае сбоя внешнего интерфейса, укажите короткое расписание для запуска тайм-аута для такого действия.