/** * {@inheritDoc} */ public function peek($jobId) { if ($this->dispatcher) { $this->dispatcher->dispatch(CommandEvent::PEEK, new CommandEvent($this, ['jobId' => $jobId])); } return $this->pheanstalk->peek($jobId); }
/** * 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); }