0

当所有工作人员都在工作时,是否可以让客户端空闲?

我有以下情况:

$client= new GearmanClient();
$client->addServer();

$data = array(thousands of entries);

foreach($data as $dt) {
    $client->doBackground('doFancy', $dt);
}

当我运行它时,它会产生数千个队列,甚至会使内存过载。

在 foreach 循环继续分配新工作之前,是否可以等待工作人员空闲?

4

1 回答 1

0

您可以为队列大小创建计数器并为完成事件设置回调。在此回调中,您必须递减计数器并检查计数器,如果它的值小于 N - 将添加新的任务组并且计数器递增。

于 2013-02-23T11:36:16.030 回答