5 chdir(dirname($argv[0]));
7 require_once __DIR__ . '/../src/init.php';
9 $cc = new \Console_CommandLine();
10 $cc->description = 'phinde queue worker';
11 $cc->version = '0.0.1';
15 'description' => 'Queue(s) to process',
17 'default' => array('crawl', 'index'),
18 'choices' => array('crawl', 'index'),
24 } catch (\Exception $e) {
25 $cc->displayError($e->getMessage());
28 $queues = array_flip(array_unique($res->args['queues']));
30 $gmworker = new \GearmanWorker();
31 $gmworker->addServer('127.0.0.1');
33 if (isset($queues['crawl'])) {
34 $gmworker->addFunction(
35 $GLOBALS['phinde']['queuePrefix'] . 'phinde_crawl',
36 function(\GearmanJob $job) {
37 $data = unserialize($job->workload());
38 echo "-- Crawling " . $data['url'] . "\n";
39 passthru('./crawl.php ' . escapeshellarg($data['url']));
43 if (isset($queues['index'])) {
44 $gmworker->addFunction(
45 $GLOBALS['phinde']['queuePrefix'] . 'phinde_index',
46 function(\GearmanJob $job) {
47 $data = unserialize($job->workload());
48 echo "-- Indexing " . $data['url'] . "\n";
49 passthru('./index.php ' . escapeshellarg($data['url']));
55 while ($gmworker->work()) {
56 if ($gmworker->returnCode() != GEARMAN_SUCCESS) {
57 echo 'Error running job: ' . $gmworker->returnCode() . "\n";