array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'uk', ), 'this' => array ( 0 => 'gearmanworker.wait.php', 1 => 'GearmanWorker::wait', 2 => 'Wait for activity from one of the job servers', ), 'up' => array ( 0 => 'class.gearmanworker.php', 1 => 'GearmanWorker', ), 'prev' => array ( 0 => 'gearmanworker.unregisterall.php', 1 => 'GearmanWorker::unregisterAll', ), 'next' => array ( 0 => 'gearmanworker.work.php', 1 => 'GearmanWorker::work', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/gearman/gearmanworker/wait.xml', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($setup); ?>

GearmanWorker::wait

(PECL gearman >= 0.6.0)

GearmanWorker::waitWait for activity from one of the job servers

Опис

public GearmanWorker::wait(): bool

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 в разі помилки.

Приклади

Приклад #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());
}


?>

Прогляньте також