Мне нужна структура, которая позволит мне сделать следующее:
Разрешить динамическое определение задач (я прочитаю внешний файл конфигурации и создам задачи / задания; например, задача = порождает внешнюю команду)
Предоставляет способ указания зависимостей от существующих задач (например, задача A будет запущена после завершения задачи B)
Уметь запускать задачи параллельно в нескольких процессах, если это позволяет порядок выполнения (т. Е. Нет взаимозависимостей задач)
Разрешить заданию зависеть от какого-то внешнего события (не знаю точно, как это описать, но некоторые задания заканчиваются, и через некоторое время они дают результаты, как фоновое запущенное задание; мне нужно указать некоторые задач, зависящих от этого события, выполненного в фоновом режиме)
Поддержка отмены / отката: если не удается выполнить одну задачу, попробуйте отменить все, что было выполнено ранее (я не ожидаю, что это будет реализовано в какой-либо среде, но, думаю, стоит спросить ..)
Так что, очевидно, это более или менее похоже на систему сборки, но я, похоже, не могу найти что-то, что позволило бы мне динамически создавать задачи, большинство вещей, которые, как мне кажется, уже определили их в "Makefile".
Есть идеи?