Write errors to stderr
[phinde.git] / bin / phinde-worker.php
index 1e94535..9b65e32 100755 (executable)
@@ -13,9 +13,10 @@ $gmworker->addFunction(
     $GLOBALS['phinde']['queuePrefix'] . 'phinde_process',
     function(\GearmanJob $job) {
         $data = unserialize($job->workload());
-        echo "-- Processing " . $data['url']
+        Log::info(
+            "-- Processing " . $data['url']
             . ' (' . implode(',', $data['actions']) . ')'
-            . "\n";
+        );
         passthru(
             './process.php ' . escapeshellarg($data['url'])
             . ' ' . implode(' ', $data['actions'])
@@ -23,9 +24,18 @@ $gmworker->addFunction(
     }
 );
 
+$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;
     }
 }