我有一个用 php 编写的 Gearman Work,可以处理来自客户端的后台任务。有时我无法处理这项工作。我需要一种方法来延迟 5 分钟后重试该作业。我怎样才能做到这一点?
我现在要做的是exit(255
),但这会立即重试该作业。我也不知道如何获得该特定作业(在工作人员中)的失败次数。
问题:
- 如何在 Gearmand 中执行上述操作
- 还有其他的吗 消息系统有能力做到这一点吗?
最佳答案
你不能。至少不使用内置功能。此功能仅在 Gearmand 中部分实现,PHP 模块未公开此功能。请参阅this discussion关于该功能。
人们尝试了不同的方法,包括:
- 使用node.js and its timeout capabilities
- 使用
位于
utility - 使用另一个排队系统 - beanstalkd
说到跟踪失败 - 再说一次,你不能,据我所知。请参阅我的回答 handling retries in Gearman寻找可能的解决方案。
关于php - 在 php 中延迟 gearman 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15790531/