GearmanClient::addTaskLow
GearmanClient::addTaskLow
(PECL gearman >= 0.5.0)
GearmanClient :: addTaskLow - 添加一个低优先级任务并行运行
描述
public GearmanTask GearmanClient::addTaskLow ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
添加一个低优先级的后台任务,与其他任务并行运行。为所有要并行运行的任务调用此方法,然后调用GearmanClient :: runTasks()来执行该工作。具有低优先级的任务将从正常或低优先级的队列中选择。
参数
function_name
工作人员执行的注册功能
workload
要处理的序列化数据
context
应用程序上下文与任务相关联
unique
用于识别特定任务的唯一ID
返回值
GearmanTask对象或FALSE
无法添加任务。
例子
示例#1低优先级任务以及两个正常任务
低优先级任务包含在两项其他任务中。一个工作人员可用,以便一次运行一个任务,而低优先级任务最后运行。
<?php
# create the gearman client
$gmc= new GearmanClient(
# add the default job server
$gmc->addServer(
# set the callback for when the job is complete
$gmc->setCompleteCallback("reverse_complete"
# add tasks, one of which is low priority
$task= $gmc->addTask("reverse", "Hello World!", null, "1"
$task= $gmc->addTaskLow("reverse", "!dlroW olleH", null, "2"
$task= $gmc->addTask("reverse", "Hello World!", null, "3"
if (! $gmc->runTasks())
{
echo "ERROR " . $gmc->error() . "\n";
exit;
}
echo "DONE\n";
function reverse_complete($task)
{
echo "COMPLETE: " . $task->unique() . ", " . $task->data() . "\n";
}
?>
上面的例子会输出类似于:
COMPLETE: 3, !dlroW olleH
COMPLETE: 1, !dlroW olleH
COMPLETE: 2, Hello World!
DONE