首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GearmanClient::addTaskHigh

(PECL gearman >= 0.5.0)

GearmanClient :: addTaskHigh - 添加一个高优先级的任务并行运行

描述

代码语言:javascript
复制
public GearmanTask GearmanClient::addTaskHigh ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

添加与其他任务并行运行的高优先级任务。为所有高优先级任务调用此方法并行运行,然后调用GearmanClient :: runTasks()来执行此工作。具有高优先级的任务将从正常或低优先级的队列中选出。

参数

function_name

工作人员执行的注册功能

workload

要处理的序列化数据

context

应用程序上下文与任务相关联

unique

用于识别特定任务的唯一ID

返回值

返回GearmanTask对象或无法添加任务时返回FALSE

例子

示例#1高优先级任务以及两个正常任务

一项高优先级任务包含在另外两项任务中。一个工作人员可用,以便一次运行一个任务,高优先级任务首先运行。

代码语言:javascript
复制
<?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 high priority
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->addTaskHigh("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";
}

?>

上面的例子会输出类似于:

代码语言:javascript
复制
COMPLETE: 2, Hello World!
COMPLETE: 3, !dlroW olleH
COMPLETE: 1, !dlroW olleH
DONE

扫码关注腾讯云开发者

领取腾讯云代金券