(PECL gearman >= 0.5.0)
Run a task in the background
public string GearmanClient::doBackground ( string $function_name, string $workload [, string $unique ] )
Runs a task in the background, returning a job handle which can be used to get the status of the running task.
Parameters:
function_name
A registered function the worker is to execute
workload
Serialized data to be processed
unique
A unique ID used to identify a particular task
Returns:
The job handle for the submitted task.
Examples:
Submit and monitor a background job
The worker in this example has an artificial delay introduced to mimic a long running job. The client script periodically checks the status of the running job.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <?php /* create our object */ $gmclient = new GearmanClient(); /* add the default server */ $gmclient ->addServer(); /* run reverse client */ $job_handle = $gmclient ->doBackground( "reverse" , "this is a test" ); if ( $gmclient ->returnCode() != GEARMAN_SUCCESS) { echo "bad return code\n" ; exit ; } $done = false; do { sleep(3); $stat = $gmclient ->jobStatus( $job_handle ); if (! $stat [0]) // the job is known so it is not done $done = true; echo "Running: " . ( $stat [1] ? "true" : "false" ) . ", numerator: " . $stat [2] . ", denomintor: " . $stat [3] . "\n" ; } while (! $done ); echo "done!\n" ; ?> |
The above example will output something similar to:
Running: true, numerator: 3, denomintor: 14 Running: true, numerator: 6, denomintor: 14 Running: true, numerator: 9, denomintor: 14 Running: true, numerator: 12, denomintor: 14 Running: false, numerator: 0, denomintor: 0 done!
See also:
Please login to continue.