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

namespace IlluminateQueueJobs;

use 
PheanstalkPheanstalk;
use 
IlluminateContainerContainer;
use 
PheanstalkJob as PheanstalkJob;
use 
IlluminateContractsQueueJob as JobContract;

class 
BeanstalkdJob extends Job implements JobContract
{
    
/**
     * The Pheanstalk instance.
     *
     * @var PheanstalkPheanstalk
     */
    
protected $pheanstalk;

    
/**
     * The Pheanstalk job instance.
     *
     * @var PheanstalkJob
     */
    
protected $job;

    
/**
     * Create a new job instance.
     *
     * @param  IlluminateContainerContainer  $container
     * @param  PheanstalkPheanstalk  $pheanstalk
     * @param  PheanstalkJob  $job
     * @param  string  $queue
     * @return void
     */
    
public function __construct(Container $container,
                                
Pheanstalk $pheanstalk,
                                
PheanstalkJob $job,
                                
$queue)
    {
        
$this->job $job;
        
$this->queue $queue;
        
$this->container $container;
        
$this->pheanstalk $pheanstalk;
    }

    
/**
     * Fire the job.
     *
     * @return void
     */
    
public function fire()
    {
        
$this->resolveAndFire(json_decode($this->getRawBody(), true));
    }

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

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

        
$this->pheanstalk->delete($this->job);
    }

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

        
$priority Pheanstalk::DEFAULT_PRIORITY;

        
$this->pheanstalk->release($this->job$priority$delay);
    }

    
/**
     * Bury the job in the queue.
     *
     * @return void
     */
    
public function bury()
    {
        
parent::release();

        
$this->pheanstalk->bury($this->job);
    }

    
/**
     * Get the number of times the job has been attempted.
     *
     * @return int
     */
    
public function attempts()
    {
        
$stats $this->pheanstalk->statsJob($this->job);

        return (int) 
$stats->reserves;
    }

    
/**
     * Get the job identifier.
     *
     * @return string
     */
    
public function getJobId()
    {
        return 
$this->job->getId();
    }

    
/**
     * Get the IoC container instance.
     *
     * @return IlluminateContainerContainer
     */
    
public function getContainer()
    {
        return 
$this->container;
    }

    
/**
     * Get the underlying Pheanstalk instance.
     *
     * @return PheanstalkPheanstalk
     */
    
public function getPheanstalk()
    {
        return 
$this->pheanstalk;
    }

    
/**
     * Get the underlying Pheanstalk job.
     *
     * @return PheanstalkJob
     */
    
public function getPheanstalkJob()
    {
        return 
$this->job;
    }
}
Онлайн: 2
Реклама