12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?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());
- }
- ?>
|