Gearman GearmanClient::addTaskLow
(PECL gearman >= 0.5.0)
GearmanClient::addTaskLow — 병렬로 실행할 낮은 우선 순위 작업 추가
설명
public GearmanClient::addTaskLow( string $function_name, string $workload, mixed &$context = ?, string $unique = ? ): GearmanTask
다른 작업과 병렬로 실행할 낮은 우선 순위의 백그라운드 작업을 추가합니다. 모든 작업이 병렬로 실행되도록 이 메서드를 호출한 다음 GearmanClient::runTasks()를 호출하여 작업을 수행합니다. 낮은 우선 순위의 작업은 보통 또는 낮은 우선 순위의 작업 다음에 대기열에서 선택됩니다.
매개변수
function_name
- 작업자가 실행할 등록된 함수
workload
- 처리할 직렬화된 데이터
context
- 작업과 연결할 애플리케이션 컨텍스트
unique
- 특정 작업을 식별하는 데 사용되는 고유 ID
반환 값
작업을 추가할 수 없는 경우 GearmanTask 개체 또는 false
입니다.
Examples
예제 #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
기타
- GearmanClient::addTask() - 병렬로 실행할 작업 추가
- GearmanClient::addTaskHigh() - 병렬로 실행할 높은 우선 순위 작업 추가
- GearmanClient::addTaskBackground() - 병렬로 실행할 백그라운드 작업 추가
- GearmanClient::addTaskHighBackground() - 병렬로 실행할 높은 우선 순위의 백그라운드 작업 추가
- GearmanClient::addTaskLowBackground() - 병렬로 실행할 낮은 우선 순위 백그라운드 작업 추가
- GearmanClient::runTasks() - 작업 목록을 병렬로 실행