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