1

我正在处理 Gearman 的后台任务。

如果您在http://www.php.net/manual/en/gearmanclient.addtaskstatus.php阅读代码示例,您将看到以下注释:

/* Poll the server to see when those background jobs finish; */
/* a better method would be to use event callbacks */

这些事件回调到底是什么?

我尝试了以下方法:

    $client->setCreatedCallback(function(GearmanTask $task){
    });
    $client->setExceptionCallback(function(GearmanTask $task){
    });
    $client->setFailCallback(function(GearmanTask $task){
    });

但是当使用 $client->doBackground() 添加任务时,它们都不会触发。

谢谢。

4

1 回答 1

0

之所以调用后台任务,是因为它们允许提交它们的客户端解除阻塞并断开连接工作。他们不保持对客户开放的沟通渠道,因此您不会获得任何这些状态更新。如果要检查后台作业的状态,请使用 GearmanClient::jobStatus。见这里这里

于 2014-07-18T15:38:58.210 回答