在php中延迟一个齿轮工作

时间:2013-04-03 14:44:02

标签: php message-queue gearman

我在php中有一个Gearman Work来处理来自客户端的后台任务。我不时能够处理那份工作。我需要一种方法来延迟5分钟后重试那个工作。我怎么能这样做?

我现在要做的是exit(255),但这会立即重试。另外,我不知道如何获得该特定工作(在工人中)的失败次数。

问题:

  1. 如何在Gearmand
  2. 中执行上述操作
  3. 还有其他吗? 消息系统能够做到这一点吗?

2 个答案:

答案 0 :(得分:2)

你不能。至少不使用内置功能。此功能仅部分在Gearmand中实现,PHP模块不公开此功能。请参阅该功能的this discussion

人们尝试过不同的东西,包括:

当涉及到跟踪失败时 - 再次,你不能,AFAIK。有关可能的解决方案,请参阅handling retries in Gearman上的答案。

答案 1 :(得分:0)

没有内置,但你可以使用一些memcached + TTL。