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
기타
- GearmanClient::addTask() - 병렬로 실행할 작업 추가
- GearmanClient::addTaskLow() - 병렬로 실행할 낮은 우선 순위 작업 추가
- GearmanClient::addTaskBackground() - 병렬로 실행할 백그라운드 작업 추가
- GearmanClient::addTaskHighBackground() - 병렬로 실행할 높은 우선 순위의 백그라운드 작업 추가
- GearmanClient::addTaskLowBackground() - 병렬로 실행할 낮은 우선 순위 백그라운드 작업 추가
- GearmanClient::runTasks() - 작업 목록을 병렬로 실행