Я пытаюсь закодировать проблему на Java, где мне нужно выполнить кучу задач.
Проблема
Выполнение задания, которое состоит из нескольких задач, и эти задачи имеют зависимости между ними.
У задания будет список задач, и каждая такая задача будет иметь список заданий-преемников (каждая задача-преемник будет иметь свои собственные задачи-преемника - здесь вы можете увидеть рекурсивный характер). Каждая последующая задача может начать свое выполнение, если -
-
Он настроен на выполнение при частичном выполнении его предшественника. В этом случае задача предшественника сообщит, что она завершилась частично, и мои задачи-преемники могут начинаться
-
Успешное завершение задачи предшественника.
Пример
Работа, имеющая 2 начальные задачи A и B. A имеет 2 задания-преемника M и N. B имеет одну задачу-преемника P. P имеет две задачи-преемника Y и Z.
M может начать с частичного завершения своей предшествующей задачи A. Z может начать с частичного завершения своей предшествующей задачи P. N, P и Y могут запускаться только по завершении своих предшественников A, B и P соответственно.
Мне нужно спроектировать выполнение такого рабочего процесса/задания. В проекте мы должны признать событие частичного завершения, отправленное задачей предшественника, чтобы можно было запустить его задачу-преемника. Как мне это сделать? Есть ли какой-либо шаблон проектирования, который подходит для этой проблемы в concurrency?