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.

Другие вопросы по тегам