Files
archived-pecl-networking-ge…/examples/reverse_worker.php
jluedke 2a12523919 - Fixed build issue with 5.1.x
Merged eday changes
    - Added wait functions, uncommented other worker functions.
    - Added timeout functions.
    - Updated function list from C library and removed free methods 
      (should use unset).
    - Added stubs for new functions, fixed tests, fixed some of the 
      existing functions from changes.
2009-10-01 08:03:18 +00:00

71 lines
1.5 KiB
PHP

<?php
/*
* Gearman PHP Extension
*
* Copyright (C) 2008 James M. Luedke <contact@jamesluedke.com>,
* Eric Day <eday@oddments.org>
* All rights reserved.
*
* Use and distribution licensed under the PHP license. See
* the LICENSE file in this directory for full text.
*/
echo "Starting\n";
# Create our worker object.
$gmworker= new GearmanWorker();
# Add default server (localhost).
$gmworker->addServer();
# Register function "reverse" with the server. Change the worker function to
# "reverse_fn_fast" for a faster worker with no output.
$gmworker->addFunction("reverse", "reverse_fn");
print "Waiting for job...\n";
while($gmworker->work())
{
if ($gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo "return_code: " . $gmworker->returnCode() . "\n";
break;
}
}
function reverse_fn($job)
{
echo "Received job: " . $job->handle() . "\n";
$workload= $job->workload();
$workload_size= $job->workloadSize();
echo "Workload: $workload ($workload_size)\n";
# This status loop is not needed, just showing how it works
for ($x= 0; $x < $workload_size; $x++)
{
echo "Sending status: $x/$workload_size complete\n";
/*
$job->sendStatus($x, $workload_size);
sleep(1);
*/
}
$result= strrev($workload);
echo "Result: $result\n";
# Return what we want to send back to the client.
return $result;
}
# A much simpler and less verbose version of the above function would be:
function reverse_fn_fast($job)
{
return strrev($job->workload());
}
?>