123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- <?php
-
- namespace Illuminate\Queue\Jobs;
-
- use Pheanstalk\Pheanstalk;
- use Illuminate\Container\Container;
- use Pheanstalk\Job as PheanstalkJob;
- use Illuminate\Contracts\Queue\Job as JobContract;
-
- class BeanstalkdJob extends Job implements JobContract
- {
- /**
- * The Pheanstalk instance.
- *
- * @var \Pheanstalk\Pheanstalk
- */
- protected $pheanstalk;
-
- /**
- * The Pheanstalk job instance.
- *
- * @var \Pheanstalk\Job
- */
- protected $job;
-
- /**
- * Create a new job instance.
- *
- * @param \Illuminate\Container\Container $container
- * @param \Pheanstalk\Pheanstalk $pheanstalk
- * @param \Pheanstalk\Job $job
- * @param string $connectionName
- * @param string $queue
- * @return void
- */
- public function __construct(Container $container, Pheanstalk $pheanstalk, PheanstalkJob $job, $connectionName, $queue)
- {
- $this->job = $job;
- $this->queue = $queue;
- $this->container = $container;
- $this->pheanstalk = $pheanstalk;
- $this->connectionName = $connectionName;
- }
-
- /**
- * Release the job back into the queue.
- *
- * @param int $delay
- * @return void
- */
- public function release($delay = 0)
- {
- parent::release($delay);
-
- $priority = Pheanstalk::DEFAULT_PRIORITY;
-
- $this->pheanstalk->release($this->job, $priority, $delay);
- }
-
- /**
- * Bury the job in the queue.
- *
- * @return void
- */
- public function bury()
- {
- parent::release();
-
- $this->pheanstalk->bury($this->job);
- }
-
- /**
- * Delete the job from the queue.
- *
- * @return void
- */
- public function delete()
- {
- parent::delete();
-
- $this->pheanstalk->delete($this->job);
- }
-
- /**
- * Get the number of times the job has been attempted.
- *
- * @return int
- */
- public function attempts()
- {
- $stats = $this->pheanstalk->statsJob($this->job);
-
- return (int) $stats->reserves;
- }
-
- /**
- * Get the job identifier.
- *
- * @return int
- */
- public function getJobId()
- {
- return $this->job->getId();
- }
-
- /**
- * Get the raw body string for the job.
- *
- * @return string
- */
- public function getRawBody()
- {
- return $this->job->getData();
- }
-
- /**
- * Get the underlying Pheanstalk instance.
- *
- * @return \Pheanstalk\Pheanstalk
- */
- public function getPheanstalk()
- {
- return $this->pheanstalk;
- }
-
- /**
- * Get the underlying Pheanstalk job.
- *
- * @return \Pheanstalk\Job
- */
- public function getPheanstalkJob()
- {
- return $this->job;
- }
- }
|