Job.php 1.27 KB
<?php

namespace common\components\jqueue\db;

use common\components\jqueue\base\Job as BaseJob;

/**
 * Class Job
 * @package common\components\jqueue\db
 */
class Job extends BaseJob
{
    /**
     * 数据库记录对象
     * @var
     */
    public $model;

    public function init()
    {
        parent::init();
        $this->model->attempts = $this->model->attempts + 1;
    }

    /**
     * 获取队列任务执行次数
     * @return mixed
     */
    public function getAttempts()
    {
        return (int)$this->model->attempts;
    }

    /**
     * 获取队列任务数据
     * @return mixed
     */
    public function getPayload()
    {
        return $this->model->payload;
    }

    /**
     * 获取对垒任务id
     * @return mixed
     */
    public function getJobId()
    {
        return $this->model->id;
    }

    /**
     * 将任务重新加入队列
     * @param int $delay
     */
    public function release($delay = 0)
    {
        parent::release($delay);
        $this->delete();
        $this->queueInstance->release($this->queueName, $this->model, $delay);
    }

    /*
     * 删除任务
     */
    public function delete()
    {
        parent::delete();
        $this->queueInstance->deleteReserved($this->queueName, $this->model->id);
    }
}