9f8c35aa9ff95f9e3cca309150f33349c4e3317b
[phinde.git] / bin / phinde-worker.php
1 #!/usr/bin/env php
2 <?php
3 namespace phinde;
4
5 chdir(dirname($argv[0]));
6
7 require_once __DIR__ . '/../src/init.php';
8
9 $gmworker = new \GearmanWorker();
10 $gmworker->addServer('127.0.0.1');
11
12 $gmworker->addFunction(
13     $GLOBALS['phinde']['queuePrefix'] . 'phinde_process',
14     function(\GearmanJob $job) {
15         $data = unserialize($job->workload());
16         echo "-- Processing " . $data['url']
17             . ' (' . implode(',', $data['actions']) . ')'
18             . "\n";
19         passthru(
20             './process.php ' . escapeshellarg($data['url'])
21             . ' ' . implode(' ', $data['actions'])
22         );
23     }
24 );
25
26 $gmworker->addFunction(
27     $GLOBALS['phinde']['queuePrefix'] . 'phinde_quit',
28     function(\GearmanJob $job) {
29         echo "Got exit job\n";
30         $job->sendComplete('');
31         exit(0);
32     }
33 );
34
35 while ($gmworker->work()) {
36     if ($gmworker->returnCode() != GEARMAN_SUCCESS) {
37         echo 'Error running job: ' . $gmworker->returnCode() . "\n";
38         break;
39     }
40 }
41 ?>