Exemple #1
0
 /**
  * Do nothing
  *
  * @param QueueInterface $queue
  * @param Message $message
  * @return boolean
  */
 public function execute(QueueInterface $queue, Message $message)
 {
     if ($this->failNumberOfTimes > $message->getNumberOfReleases()) {
         return false;
     }
     return true;
 }
 /**
  * Encode a message
  *
  * Updates the original value property of the message to resemble the
  * encoded representation.
  *
  * @param \Flowpack\JobQueue\Common\Queue\Message $message
  * @return string
  */
 protected function encodeMessage(\Flowpack\JobQueue\Common\Queue\Message $message)
 {
     $value = json_encode($message->toArray());
     $message->setOriginalValue($value);
     return $value;
 }
 /**
  * Decode a message from a string representation
  *
  * @param string $value
  * @return Message
  */
 protected function decodeMessage($value)
 {
     $decodedMessage = json_decode($value, true);
     $message = new Message($decodedMessage['payload']);
     if (isset($decodedMessage['identifier'])) {
         $message->setIdentifier($decodedMessage['identifier']);
     }
     $message->setOriginalValue($value);
     return $message;
 }
 /**
  * @param QueueInterface $queue
  * @param Message $message
  * @return void
  * @throws JobQueueException
  * @internal This method has to be public so that it can be run from the command handler (when "executeIsolated" is set). It is not meant to be called from "user land"
  */
 public function executeJobForMessage(QueueInterface $queue, Message $message)
 {
     // TODO stabilize unserialize() call (maybe using PHPs unserialize_callback_func directive)
     $job = unserialize($message->getPayload());
     if (!$job instanceof JobInterface) {
         throw new \RuntimeException(sprintf('The message "%s" in queue "%s" could not be unserialized to a class implementing JobInterface', $message->getIdentifier(), $queue->getName()), 1465901245);
     }
     $jobExecutionSuccess = $job->execute($queue, $message);
     if (!$jobExecutionSuccess) {
         throw new JobQueueException(sprintf('execute() for job "%s" did not return TRUE', $job->getLabel()), 1468927872);
     }
 }