Gearman GearmanClient::addTaskHigh

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHigh — 병렬로 실행할 높은 우선 순위 작업 추가


설명

public GearmanClient::addTaskHigh(
    string $function_name,
    string $workload,
    mixed &$context = ?,
    string $unique = ?
): GearmanTask
                

다른 작업과 병렬로 실행할 높은 우선 순위 작업을 추가합니다. 우선 순위가 높은 모든 작업을 병렬로 실행하려면 이 메서드를 호출한 다음 GearmanClient::runTasks()를 호출하여 작업을 수행합니다. 우선 순위가 높은 작업은 보통 또는 낮은 우선 순위의 작업보다 먼저 대기열에서 선택됩니다.


매개변수

function_name
작업자가 실행할 등록된 함수
workload
처리할 직렬화된 데이터
context
작업과 연결할 애플리케이션 컨텍스트
unique
특정 작업을 식별하는 데 사용되는 고유 ID

반환 값

작업을 추가할 수 없는 경우 GearmanTask 개체 또는 false입니다.


Examples

예제 #1 A high priority task along with two normal tasks

다른 두 가지 작업에는 우선 순위가 높은 작업이 포함됩니다. 단일 작업자를 사용할 수 있으므로 작업이 한 번에 하나씩 실행되고 우선 순위가 높은 작업이 먼저 실행됩니다.

                  
<?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";
}

?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

COMPLETE: 2, Hello World!
COMPLETE: 3, !dlroW olleH
COMPLETE: 1, !dlroW olleH
DONE
                

기타