PHP Doku:: Wait for activity from one of the job servers - gearmanworker.wait.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzSonstige DiensteGearmanThe GearmanWorker classGearmanWorker::wait

Ein Service von Reinhard Neidl - Webprogrammierung.

The GearmanWorker class

<<GearmanWorker::unregisterAll

GearmanWorker::work>>

GearmanWorker::wait

(PECL gearman >= 0.6.0)

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

Beschreibung

public bool GearmanWorker::wait ( void )

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.

Parameter-Liste

Diese Funktion hat keine Parameter.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Beispiel #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());
}


?>

Siehe auch


Keine BenutzerBeiträge.
- Beiträge aktualisieren...



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)