<?php<448901948@qq.com>namespace think\queue\job;
use think\queue\Job;
use think\queue\connector\Database as DatabaseQueue;
class Database extends Job
{
protected $database;
protected $job;
public function __construct(DatabaseQueue $database, $job, $queue)
{
$this->job = $job;
$this->queue = $queue;
$this->database = $database;
$this->job->attempts = $this->job->attempts + 1;
}
public function fire()
{
$this->resolveAndFire(json_decode($this->job->payload, true));
}
public function delete()
{
parent::delete();
$this->database->deleteReserved($this->job->id);
}
public function release($delay = 0)
{
parent::release($delay);
$this->delete();
$this->database->release($this->queue, $this->job, $delay);
}
public function attempts()
{
return (int) $this->job->attempts;
}
public function getRawBody()
{
return $this->job->payload;
}
}