Я ищу способ планирования задач, при котором задача запускается после завершения нескольких предыдущих задач.
У меня есть несколько сотен процессов "сборщика", которые собирают данные из различных источников и сбрасывают их вбаза данных.Как только они закончат сбор (где-то от 1 секунды до нескольких минут), я хочу немедленно запустить кучу процессов «обработки данных» для анализа и анализа данных в базе данных.Когда все это закончится, я хочу запустить заключительную задачу и отправить мне по электронной почте сводные данные.
В настоящее время я использую очередь Gearman и запускаю задачи обработки данных на таймерах, как только ожидаюПроцессы «сборщика» завершены, но это означает, что этап обработки начинается через 10 минут, даже если процессы сборщика завершены после 3 (или, что еще хуже, еще не завершены).
В идеале я мог быуказать конкретные правила, такие как «запуск процесса X после завершения процесса A и (B или C)» или «запуск процесса Y после завершения 95% указанных процессов или по истечении 10 минут».
Процессыи зависимости должны быть созданы автоматически, так как они будут каждый раз запускаться с разными параметрами (т. е. я не делаю одинаковые вычисления каждый раз).
Я мог бы написать какую-то графическую структуру зависимостей самостоятельно, используяочереди и мониторы, но, похоже, что-то вроде того, что уже должно быть решено, и я смотрюдля тех, кто использовал что-то, как я описываю.