Write errors to stderr
[phinde.git] / bin / phinde-worker.php
index 7adb7af..9b65e32 100755 (executable)
@@ -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(
-        '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());
+        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;
     }
 }