我在 php 中有一个 Gearman Work 来处理来自客户端的后台任务。有时我无法处理那份工作。我需要一种方法来延迟 5 分钟后重试该工作。我怎样才能做到这一点?
我现在要做的是做exit(255
)但这将立即重试工作。另外我不知道如何获得该特定工作的失败次数(在工作人员中)。
问题:
- 我如何在 Gearmand 中完成上述操作
- 是否有任何其他消息系统能够做到这一点?
我在 php 中有一个 Gearman Work 来处理来自客户端的后台任务。有时我无法处理那份工作。我需要一种方法来延迟 5 分钟后重试该工作。我怎样才能做到这一点?
我现在要做的是做exit(255
)但这将立即重试工作。另外我不知道如何获得该特定工作的失败次数(在工作人员中)。
问题:
你不能。至少不使用内置功能。此功能在 Gearmand 中仅部分实现,PHP 模块不公开此功能。请参阅有关该功能的讨论。
人们尝试了不同的方法,包括:
at
实用程序当涉及到跟踪故障时——AFAIK,你不能。请参阅我关于在 Gearman 中处理重试的答案以获得可能的解决方案。
不是内置的,但您可以为此使用一些 memcached+TTL。