mirror of
https://github.com/php/pecl-networking-gearman.git
synced 2026-03-23 23:22:22 +01:00
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.
71 lines
1.5 KiB
PHP
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());
|
|
}
|
|
|
|
|
|
|
|
|
|
?>
|