X-Git-Url: https://git.cweiske.de/phinde.git/blobdiff_plain/f77dad8f1dda382a23b9d22393e239be6c087a07..HEAD:/bin/phinde-worker.php?ds=sidebyside diff --git a/bin/phinde-worker.php b/bin/phinde-worker.php index 939db1f..9b65e32 100755 --- a/bin/phinde-worker.php +++ b/bin/phinde-worker.php @@ -6,55 +6,36 @@ chdir(dirname($argv[0])); require_once __DIR__ . '/../src/init.php'; -$cc = new \Console_CommandLine(); -$cc->description = 'phinde queue worker'; -$cc->version = '0.0.1'; -$cc->addArgument( - 'queues', - array( - 'description' => 'Queue(s) to process', - 'multiple' => true, - 'default' => array('crawl', 'index'), - 'choices' => array('crawl', 'index'), - 'optional' => true, - ) -); -try { - $res = $cc->parse(); -} catch (\Exception $e) { - $cc->displayError($e->getMessage()); -} - -$queues = array_flip(array_unique($res->args['queues'])); - $gmworker = new \GearmanWorker(); $gmworker->addServer('127.0.0.1'); -if (isset($queues['crawl'])) { - $gmworker->addFunction( - $GLOBALS['phinde']['queuePrefix'] . 'phinde_crawl', - function(\GearmanJob $job) { - $data = unserialize($job->workload()); - echo "-- Crawling " . $data['url'] . "\n"; - passthru('./crawl.php ' . escapeshellarg($data['url'])); - } - ); -} -if (isset($queues['index'])) { - $gmworker->addFunction( - $GLOBALS['phinde']['queuePrefix'] . 'phinde_index', - function(\GearmanJob $job) { - $data = unserialize($job->workload()); - echo "-- Indexing " . $data['url'] . "\n"; - passthru('./index.php ' . escapeshellarg($data['url'])); - //exit(); - } - ); -} +$gmworker->addFunction( + $GLOBALS['phinde']['queuePrefix'] . 'phinde_process', + function(\GearmanJob $job) { + $data = unserialize($job->workload()); + Log::info( + "-- Processing " . $data['url'] + . ' (' . implode(',', $data['actions']) . ')' + ); + passthru( + './process.php ' . escapeshellarg($data['url']) + . ' ' . implode(' ', $data['actions']) + ); + } +); + +$gmworker->addFunction( + $GLOBALS['phinde']['queuePrefix'] . 'phinde_quit', + function(\GearmanJob $job) { + Log::info('Got exit job'); + $job->sendComplete(''); + exit(0); + } +); while ($gmworker->work()) { if ($gmworker->returnCode() != GEARMAN_SUCCESS) { - echo 'Error running job: ' . $gmworker->returnCode() . "\n"; + Log::error('Error running job: ' . $gmworker->returnCode()); break; } }