/**
  * {@inheritDoc}
  */
 public function put($data, $priority = self::DEFAULT_PRIORITY, $delay = self::DEFAULT_DELAY, $ttr = self::DEFAULT_TTR)
 {
     if ($this->dispatcher) {
         $this->dispatcher->dispatch(CommandEvent::PUT, new CommandEvent($this, ['data' => $data, 'priority' => $priority, 'delay' => $delay, 'ttr' => $ttr]));
     }
     return $this->pheanstalk->put($data, $priority, $delay, $ttr);
 }
Ejemplo n.º 2
0
 /**
  * Delete given job and create new job with old or passed params
  *
  * @param int $jobId
  * @param int $priority
  * @param int $delay
  */
 public function reschedule($jobId, $priority = NULL, $delay = NULL)
 {
     /** @var Job $job */
     $job = $this->pheanstalk->peek($jobId);
     $jobStats = $this->pheanstalk->statsJob($job);
     $this->pheanstalk->useTube($this->tube);
     $priority = NULL === $priority ? $jobStats['pri'] : $priority;
     $delay = NULL === $delay ? $jobStats['delay'] : $delay;
     $newJobId = $this->pheanstalk->put($job->getData(), $priority, $delay, $jobStats['ttr']);
     $this->pheanstalk->delete($job);
     $context = ['job_id' => $newJobId, 'old_job_id' => $jobId, 'text' => $job->getData(), 'priority' => $priority, 'delay' => $delay];
     $this->logger->info(sprintf('Reschedule job (%d => %d): %s', $jobId, $newJobId, $job->getData()), $context);
 }
 public function put(CommandInterface $command)
 {
     $this->pheanstalk->put(serialize($command));
 }
Ejemplo n.º 4
0
 /**
  * {@inheritdoc}
  */
 public function enqueue(SerializerInterface $serializer, $payload)
 {
     $this->client->put($serializer->serialize($payload));
 }