Estoy buscando una forma de programar tareas donde una tarea comienza una vez que se han completado varias tareas anteriores.Programación de tareas con dependencias complejas
Tengo varios cientos de procesos de "recopilación" que recopilan datos de una variedad de fuentes y las vuelcan a una base de datos. Una vez que estos hayan terminado de recopilarse (entre 1 segundo y unos minutos), quiero iniciar inmediatamente un grupo de procesos de "procesamiento de datos" para analizar y dar sentido a los datos en la base de datos. Cuando todos estos hayan finalizado, quiero iniciar una tarea final y enviarme un correo electrónico con los datos de resumen.
Actualmente estoy usando una cola de Gearman y comenzando las tareas de procesamiento de datos en temporizadores una vez que espero que los procesos de "colector" se hayan completado, pero esto significa que el proceso comienza después de 10 minutos, incluso si el colector procesa terminado después de 3 (o peor, aún no ha terminado).
Idealmente, podría especificar reglas específicas como "iniciar el proceso X cuando se completan el proceso A y (B o C)" o "iniciar el proceso Y cuando se ha completado el 95% de los procesos especificados o han transcurrido 10 minutos ".
Los procesos y las dependencias deben crearse automáticamente ya que se ejecutarán con diferentes parámetros cada vez (es decir, no estoy haciendo un cálculo idéntico cada vez).
Podría escribir algún tipo de marco de dependencia de gráficos utilizando colas y monitores, pero parece que el tipo de cosas ya deben haber sido resueltas y estoy buscando a alguien que haya usado algo como lo describo.
Es poco probable que se haya hecho en PHP. – andho