123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
-
- namespace Illuminate\Queue\Jobs;
-
- use Illuminate\Container\Container;
- use Illuminate\Queue\DatabaseQueue;
- use Illuminate\Contracts\Queue\Job as JobContract;
-
- class DatabaseJob extends Job implements JobContract
- {
- /**
- * The database queue instance.
- *
- * @var \Illuminate\Queue\DatabaseQueue
- */
- protected $database;
-
- /**
- * The database job payload.
- *
- * @var \stdClass
- */
- protected $job;
-
- /**
- * Create a new job instance.
- *
- * @param \Illuminate\Container\Container $container
- * @param \Illuminate\Queue\DatabaseQueue $database
- * @param \stdClass $job
- * @param string $connectionName
- * @param string $queue
- * @return void
- */
- public function __construct(Container $container, DatabaseQueue $database, $job, $connectionName, $queue)
- {
- $this->job = $job;
- $this->queue = $queue;
- $this->database = $database;
- $this->container = $container;
- $this->connectionName = $connectionName;
- }
-
- /**
- * Release the job back into the queue.
- *
- * @param int $delay
- * @return mixed
- */
- public function release($delay = 0)
- {
- parent::release($delay);
-
- $this->delete();
-
- return $this->database->release($this->queue, $this->job, $delay);
- }
-
- /**
- * Delete the job from the queue.
- *
- * @return void
- */
- public function delete()
- {
- parent::delete();
-
- $this->database->deleteReserved($this->queue, $this->job->id);
- }
-
- /**
- * Get the number of times the job has been attempted.
- *
- * @return int
- */
- public function attempts()
- {
- return (int) $this->job->attempts;
- }
-
- /**
- * Get the job identifier.
- *
- * @return string
- */
- public function getJobId()
- {
- return $this->job->id;
- }
-
- /**
- * Get the raw body string for the job.
- *
- * @return string
- */
- public function getRawBody()
- {
- return $this->job->payload;
- }
- }
|