Я работаю над созданием приложения, в котором есть несколько этапов. На первом этапе есть несколько задач выполняется параллельно ... как только все задачи этого этапа завершены, только тогда обработка должна перейти на следующий этап.amazon простой рабочий процесс - обработка задач параллельно и переход на следующий этап только после завершения всех параллельных процессов предыдущего этапа
Из того, что я читал о дешифраторах, решатели могут выбрать один из многих возможных вариантов для следующего этапа.
Но я хочу перейти на следующий этап, только когда все параллельные процессы текущего этапа завершены.
Означает ли это, что я должен настроить каждый параллельный процесс для вызова следующего этапа, и когда следующий этап инициализируется, он должен проверить, завершены ли все параллельные процессы предыдущего этапа и только тогда на самом деле начать обработку? Это будет означать, что все параллельные процессы первой ступени будут ссылаться на коррекцию. параллельные процессы второй ступени, из которых только один будет фактически обрабатывать (так как это будет процесс, который обнаружит, что все процессы предыдущего этапа завершены).
Есть ли лучший способ реализации этого? Так что процесс следующего этапа называется только один раз?
Как правило, компоненты системы или трубопровода, как вы описываете, должны быть как можно более развязаны. Это упрощает изменение или замену конкретного компонента. При вызове одного процесса следующее не очень развязано. Вы можете использовать посредника, например, очередь (или даже таблицу базы данных или файл) в качестве механизма передачи сообщений, который уведомляет следующий компонент, который он должен выполнить. Дьявол в деталях, и я замалчиваю детали, но это общая стратегия, которую нужно почти всегда рассматривать. Абстракция и развязка - ваши друзья. –