【发布时间】:2014-04-30 05:57:48
【问题描述】:
如果没有工作人员正在运行,那么 gearman 客户端如何抛出错误。我添加了失败的回调,但它仍然没有给我失败的响应。请看下面的代码
client.php
$client = new GearmanClient();
$complete = 0;
$fail = 0;
$client->addServer($server, $server_port);
$client->setFailCallback(function () use (&$fail) {
$fail++;
error_log(__FILE__." ".__LINE__." :FAILED: \n",3,"/var/www/tmp.txt");
});
$client->doLowBackground("write_log");
$exec = exec('gearadmin --workers | grep pushers_', $output, $res);
$pri = $client->runTasks();
if ($client->returnCode() != GEARMAN_SUCCESS)
{
error_log(__FILE__." ".__LINE__." :STARTED: ".$client->returnCode()." \n",3,"/var/www/tmp.txt");
echo "bad return code\n";
exit;
}
我怎么知道即使 gearman 服务器正在工作但没有启动工作程序,那么如果客户端调用我应该如何知道没有工作程序正在运行。
【问题讨论】:
-
当工人再次开始运行时,Gearman 正在执行作业。非常抱歉这个问题。我不知道。直到那时它被保存在队列中。但是我可以测试 Gearman 作业失败的时间吗?
-
对于后台作业使用
jobStatus方法。相关问题:stackoverflow.com/questions/21656299/…