Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Queue/Jobs/RedisJob.php
Строк: 116
<?php

namespace IlluminateQueueJobs;

use 
IlluminateContainerContainer;
use 
IlluminateContractsQueueJob as JobContract;
use 
IlluminateQueueRedisQueue;

class 
RedisJob extends Job implements JobContract
{
    
/**
     * The Redis queue instance.
     *
     * @var IlluminateQueueRedisQueue
     */
    
protected $redis;

    
/**
     * The Redis raw job payload.
     *
     * @var string
     */
    
protected $job;

    
/**
     * The JSON decoded version of "$job".
     *
     * @var array
     */
    
protected $decoded;

    
/**
     * The Redis job payload inside the reserved queue.
     *
     * @var string
     */
    
protected $reserved;

    
/**
     * Create a new job instance.
     *
     * @param  IlluminateContainerContainer  $container
     * @param  IlluminateQueueRedisQueue  $redis
     * @param  string  $job
     * @param  string  $reserved
     * @param  string  $connectionName
     * @param  string  $queue
     * @return void
     */
    
public function __construct(Container $containerRedisQueue $redis$job$reserved$connectionName$queue)
    {
        
// The $job variable is the original job JSON as it existed in the ready queue while
        // the $reserved variable is the raw JSON in the reserved queue. The exact format
        // of the reserved job is required in order for us to properly delete its data.
        
$this->job $job;
        
$this->redis $redis;
        
$this->queue $queue;
        
$this->reserved $reserved;
        
$this->container $container;
        
$this->connectionName $connectionName;

        
$this->decoded $this->payload();
    }

    
/**
     * Get the raw body string for the job.
     *
     * @return string
     */
    
public function getRawBody()
    {
        return 
$this->job;
    }

    
/**
     * Delete the job from the queue.
     *
     * @return void
     */
    
public function delete()
    {
        
parent::delete();

        
$this->redis->deleteReserved($this->queue$this);
    }

    
/**
     * Release the job back into the queue after (n) seconds.
     *
     * @param  int  $delay
     * @return void
     */
    
public function release($delay 0)
    {
        
parent::release($delay);

        
$this->redis->deleteAndRelease($this->queue$this$delay);
    }

    
/**
     * Get the number of times the job has been attempted.
     *
     * @return int
     */
    
public function attempts()
    {
        return (
$this->decoded['attempts'] ?? null) + 1;
    }

    
/**
     * Get the job identifier.
     *
     * @return string|null
     */
    
public function getJobId()
    {
        return 
$this->decoded['id'] ?? null;
    }

    
/**
     * Get the underlying Redis factory implementation.
     *
     * @return IlluminateQueueRedisQueue
     */
    
public function getRedisQueue()
    {
        return 
$this->redis;
    }

    
/**
     * Get the underlying reserved Redis job.
     *
     * @return string
     */
    
public function getReservedJob()
    {
        return 
$this->reserved;
    }
}
Онлайн: 1
Реклама