<?php
namespace Illuminate\Queue;
use Illuminate\Contracts\Queue\Job as JobContract;
trait InteractsWithQueue
{
/**
* The underlying queue job instance.
*
* @var \Illuminate\Contracts\Queue\Job
*/
public $job;
/**
* Get the number of times the job has been attempted.
*
* @return int
*/
public function attempts()
{
return $this->job ? $this->job->attempts() : 1;
}
/**
* Delete the job from the queue.
*
* @return void
*/
public function delete()
{
if ($this->job) {
return $this->job->delete();
}
}
/**
* Fail the job from the queue.
*
* @param \Throwable|null $exception
* @return void
*/
public function fail($exception = null)
{
if ($this->job) {
$this->job->fail($exception);
}
}
/**
* Release the job back into the queue.
*
* @param int $delay
* @return void
*/
public function release($delay = 0)
{
if ($this->job) {
return $this->job->release($delay);
}
}
/**
* Set the base queue job instance.
*
* @param \Illuminate\Contracts\Queue\Job $job
* @return $this
*/
public function setJob(JobContract $job)
{
$this->job = $job;
return $this;
}
}