Example #1
0
 /**
  * Registers the gearman queues where the worker has to listen on.
  * The given callback has to transform the workload into a RequestMessage object.
  *
  * @param string $callbackName
  * @param callable $workloadToMessageCallback The return value of
  */
 public function listenOn($callbackName, callable $workloadToMessageCallback)
 {
     $this->addCallback($callbackName, function ($job) use($workloadToMessageCallback) {
         $message = call_user_func($workloadToMessageCallback, $job->workload());
         if ($message instanceof RequestMessageInterface) {
             if ($this->verbose) {
                 $this->logger->debug("Sending message to queue: " . (string) $message);
             }
             $this->metrics->increment('message');
             $this->client->message($message);
         } else {
             throw new \Exception("Invalid return type.");
         }
     });
 }