Gearman GearmanClient::addTaskStatus

(PECL gearman >= 0.5.0)

GearmanClient::addTaskStatus — 상태를 가져오는 작업 추가


설명

public GearmanClient::addTaskStatus(string $job_handle, string &$context = ?): GearmanTask

지정된 상태 콜백(GearmanClient::setStatusCallback()을 사용하여 설정)을 호출하는 Gearman 서버에서 상태 정보를 요청하는 데 사용됩니다.


매개변수

job_handle
상태를 가져올 작업의 작업 핸들
context
상태 콜백에 전달할 데이터, 일반적으로 배열 또는 객체에 대한 참조

반환 값

GearmanTask 개체.


Examples

예제 #1 여러 백그라운드 작업 완료 모니터링

장기 실행 프로세스를 시뮬레이션하기 위해 이 예에서 작업자에 인위적인 지연이 도입되었습니다. 이 예에서는 작업자가 하나만 실행됩니다.

                  
<?php

/* create our object */
$gmclient= new GearmanClient();

/* add the default server */
$gmclient->addServer();

/* start some background jobs and save the handles */
$handles = array();
$handles[0] = $gmclient->doBackground("reverse", "Hello World!");
$handles[1] = $gmclient->doBackground("reverse", "!dlroW olleH");

$gmclient->setStatusCallback("reverse_status");

/* Poll the server to see when those background jobs finish; */
/* a better method would be to use event callbacks */
do
{
   /* Use the context variable to track how many tasks have completed */
   $done = 0;
   $gmclient->addTaskStatus($handles[0], &$done);
   $gmclient->addTaskStatus($handles[1], &$done);
   $gmclient->runTasks();
   echo "Done: $done\n";
   sleep(1);
}
while ($done != 2);

function reverse_status($task, $done)
{
   if (!$task->isKnown())
      $done++;
}

?>
                  
                

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

Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 2
                

기타