带有嵌套作业的Gearman回调



我有一个gearman作业,它运行并执行更多的作业,而它本身又可能执行更多的作业。当所有嵌套作业完成时,我想要某种回调。我可以很容易地做到这一点,但是我的实现会束缚工作线程(旋转直到子线程完成),这是我不想做的。

有解决方法吗?在《Gearman AFAIK》中没有"组"的概念,所以我不能将任务添加到组中,并在该组完成后触发一些内容。

就像你说的,Gearman没有内置的东西来处理这个问题。如果你不想占用一个worker(并让该worker为你添加任务并跟踪它们的完成情况),你就必须进行带外状态跟踪。

一种方法是在memcached中保留一个组标识符,并在任务完成时增加已完成的子任务的数量,并在为同一组添加新任务时增加总任务的数量。然后,您可以轮询memcached以查看当前的执行状态(已完成的任务与总任务)。

最新更新