【发布时间】:2014-06-20 18:52:57
【问题描述】:
我有一个正在运行的 Gearman 作业,它本身会执行更多作业,而反过来可能会执行更多作业。当所有嵌套作业完成后,我想要某种回调。我可以轻松做到这一点,但我的实现会占用工人(旋转直到孩子完成),这是我不想做的。
有解决方法吗? Gearman AFAIK 中没有“组”的概念,因此我无法将作业添加到组并在该组完成后触发。
【问题讨论】:
标签: gearman
我有一个正在运行的 Gearman 作业,它本身会执行更多作业,而反过来可能会执行更多作业。当所有嵌套作业完成后,我想要某种回调。我可以轻松做到这一点,但我的实现会占用工人(旋转直到孩子完成),这是我不想做的。
有解决方法吗? Gearman AFAIK 中没有“组”的概念,因此我无法将作业添加到组并在该组完成后触发。
【问题讨论】:
标签: gearman
正如你所说,Gearman 没有内置任何东西来处理这个问题。如果您不想捆绑工作人员(并让该工作人员为您添加任务并跟踪其完成情况),则必须进行带外状态跟踪。
一种方法是在 memcached 中保留组标识符,并在任务完成时增加已完成子任务的数量,并在为同一组添加新任务时增加总任务数。然后,您可以轮询 memcached 以查看当前执行状态(已完成任务与总任务)。
【讨论】: