©
This document uses PHP Chinese website manual Release
(PECL gearman >= 0.6.0)
GearmanWorker::wait — Wait for activity from one of the job servers
Causes the worker to wait for activity from one of the Gearman job servers when operating
in non-blocking I/O mode. On failure, issues a E_WARNING
with the last Gearman error
encountered.
此函数没有参数。
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
Example #1 Running worker in non-blocking mode
<?php
echo "Starting\n" ;
# Create our worker object
$worker = new GearmanWorker ();
# Make the worker non-blocking
$worker -> addOptions ( GEARMAN_WORKER_NON_BLOCKING );
# Add the default server (localhost, port 4730)
$worker -> addServer ();
# Add our reverse function
$worker -> addFunction ( 'reverse' , 'reverse_fn' );
# Try to grab a job
while (@ $worker -> work () ||
$worker -> returnCode () == GEARMAN_IO_WAIT ||
$worker -> returnCode () == GEARMAN_NO_JOBS )
{
if ( $worker -> returnCode () == GEARMAN_SUCCESS )
continue;
echo "Waiting for next job...\n" ;
if (!@ $worker -> wait ())
{
if ( $worker -> returnCode () == GEARMAN_NO_ACTIVE_FDS )
{
# We are not connected to any servers, so wait a bit before
# trying to reconnect.
sleep ( 5 );
continue;
}
break;
}
}
echo "Worker Error: " . $worker -> error () . "\n" ;
function reverse_fn ( $job )
{
return strrev ( $job -> workload ());
}
?>