【发布时间】:2014-10-23 08:01:28
【问题描述】:
当工作人员作业因致命错误而失败时,我无法捕获此错误,因此我无法将结果发送到 gearman 服务器,并且服务器不会从队列中删除作业并尝试再次执行此作业,主管重新启动工作人员和工作人员再次失败.所以我可以接收无限循环,直到重新启动服务器:
gearman 将作业发送给工人 -> 工人因致命错误而失败 -> 作业未从队列中删除 -> 主管重新启动工人 -> gearman 将作业发送给工人 -> ...
(当然,前提是我不能快速修复 php 中的错误)。如何从队列中删除此作业(或以其他方式解决此问题)?
简单示例:
$worker->addFunction('test', 'test');
while($worker->work());
function test()
{
$a = [];
//fatal error
$a->fatal();
}
【问题讨论】:
-
请贴一些代码
-
whiiiiiiiiiiiiiiiiiiiiile