/** * {@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); }
/** * 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)); }
/** * {@inheritdoc} */ public function enqueue(SerializerInterface $serializer, $payload) { $this->client->put($serializer->serialize($payload)); }