我正在寻找一种调度任务的方法,其中一旦完成了几个先前的任务,任务就会开始。
我有数百个“收集器”进程,它们从各种来源收集数据并将其转储到数据库中。一旦这些完成收集(从 1 秒到几分钟不等),我想立即启动一堆“数据处理”过程来分析和理解数据库中的数据。当所有这些都完成后,我希望开始一项最终任务并向我发送一封包含摘要数据的电子邮件。
我目前正在使用 Gearman 队列并在我期望“收集器”进程完成后启动计时器上的数据处理任务,但这意味着处理步骤在 10 分钟后开始,即使收集器进程在 3 后完成(或更糟糕的是,还没有完成)。
理想情况下,我可以指定特定规则,例如“在进程 A 和(B 或 C)完成时启动进程 X”,或“在 95% 的指定进程已完成或 10 分钟过去时启动进程 Y”。
需要自动创建流程和依赖项,因为它每次都会使用不同的参数运行(即,我每次都不会进行相同的计算)。
我可以自己使用队列和监视器编写某种图形依赖框架,但这似乎必须已经解决,我正在寻找任何使用过我描述的东西的人。