Big patch merging crawling+indexing into one command, new json document structure
[phinde.git] / bin / phinde-worker.php
index 7adb7af95aa584a188b010165ec453725f7149df..1e94535b1d5dc86f208a7113a5f6cbbe9c1a1cb6 100755 (executable)
@@ -6,51 +6,22 @@ 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(
-        '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(
-        '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());
+        echo "-- Processing " . $data['url']
+            . ' (' . implode(',', $data['actions']) . ')'
+            . "\n";
+        passthru(
+            './process.php ' . escapeshellarg($data['url'])
+            . ' ' . implode(' ', $data['actions'])
+        );
+    }
+);
 
 while ($gmworker->work()) {
     if ($gmworker->returnCode() != GEARMAN_SUCCESS) {