AWS SWF: запуск действий на разных серверах
У меня есть рабочий процесс с>3 действиями, работающими на 2 серверах, но я хочу, чтобы одно из действий выполнялось на 3-м выделенном сервере, т.е. этот сервер должен выполнять только действие x, а не весь рабочий процесс. До сих пор (с моими ограниченными знаниями) я мог сделать сервисный вызов в действии, чтобы выполнить процесс на выделенном сервере, а затем получить обратный вызов, когда это будет сделано, но я чувствую, что должен быть более легкий путь к нему.
Кто-нибудь пробовал это когда-либо?
1 ответ
Задачи действий и рабочих процессов доставляются через списки задач. По умолчанию действие запланировано в списке задач по умолчанию, связанном с типом действия. Вы должны использовать другой список задач для третьего действия и убедиться, что его работник опрашивает этот список задач.
Если вы используете AWS Flow Framework для Java, вы можете сделать это с помощью следующей аннотации:
@Activities
@ActivityRegistrationOptions(...) // used by activity1 and activity2
public interface MyActivities {
public void activity1();
public void activity2();
// override for activity3
@ActivityRegistrationOptions(defaultTaskList="activity3", ...)
public void activity3();
}
Затем используйте " Activity3 " в качестве параметра конструктора taskListToPoll для Activity3 ActivityWorker.