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

namespace IlluminateQueue;

use 
IlluminateContractsQueueJob;
use 
IlluminateContractsQueueQueue as QueueContract;
use 
IlluminateQueueEventsJobExceptionOccurred;
use 
IlluminateQueueEventsJobProcessed;
use 
IlluminateQueueEventsJobProcessing;
use 
IlluminateQueueJobsSyncJob;
use 
Throwable;

class 
SyncQueue extends Queue implements QueueContract
{
    
/**
     * Get the size of the queue.
     *
     * @param  string|null  $queue
     * @return int
     */
    
public function size($queue null)
    {
        return 
0;
    }

    
/**
     * Push a new job onto the queue.
     *
     * @param  string  $job
     * @param  mixed  $data
     * @param  string|null  $queue
     * @return mixed
     *
     * @throws Throwable
     */
    
public function push($job$data ''$queue null)
    {
        
$queueJob $this->resolveJob($this->createPayload($job$queue$data), $queue);

        try {
            
$this->raiseBeforeJobEvent($queueJob);

            
$queueJob->fire();

            
$this->raiseAfterJobEvent($queueJob);
        } catch (
Throwable $e) {
            
$this->handleException($queueJob$e);
        }

        return 
0;
    }

    
/**
     * Resolve a Sync job instance.
     *
     * @param  string  $payload
     * @param  string  $queue
     * @return IlluminateQueueJobsSyncJob
     */
    
protected function resolveJob($payload$queue)
    {
        return new 
SyncJob($this->container$payload$this->connectionName$queue);
    }

    
/**
     * Raise the before queue job event.
     *
     * @param  IlluminateContractsQueueJob  $job
     * @return void
     */
    
protected function raiseBeforeJobEvent(Job $job)
    {
        if (
$this->container->bound('events')) {
            
$this->container['events']->dispatch(new JobProcessing($this->connectionName$job));
        }
    }

    
/**
     * Raise the after queue job event.
     *
     * @param  IlluminateContractsQueueJob  $job
     * @return void
     */
    
protected function raiseAfterJobEvent(Job $job)
    {
        if (
$this->container->bound('events')) {
            
$this->container['events']->dispatch(new JobProcessed($this->connectionName$job));
        }
    }

    
/**
     * Raise the exception occurred queue job event.
     *
     * @param  IlluminateContractsQueueJob  $job
     * @param  Throwable  $e
     * @return void
     */
    
protected function raiseExceptionOccurredJobEvent(Job $jobThrowable $e)
    {
        if (
$this->container->bound('events')) {
            
$this->container['events']->dispatch(new JobExceptionOccurred($this->connectionName$job$e));
        }
    }

    
/**
     * Handle an exception that occurred while processing a job.
     *
     * @param  IlluminateContractsQueueJob  $queueJob
     * @param  Throwable  $e
     * @return void
     *
     * @throws Throwable
     */
    
protected function handleException(Job $queueJobThrowable $e)
    {
        
$this->raiseExceptionOccurredJobEvent($queueJob$e);

        
$queueJob->fail($e);

        throw 
$e;
    }

    
/**
     * Push a raw payload onto the queue.
     *
     * @param  string  $payload
     * @param  string|null  $queue
     * @param  array  $options
     * @return mixed
     */
    
public function pushRaw($payload$queue null, array $options = [])
    {
        
//
    
}

    
/**
     * Push a new job onto the queue after (n) seconds.
     *
     * @param  DateTimeInterface|DateInterval|int  $delay
     * @param  string  $job
     * @param  mixed  $data
     * @param  string|null  $queue
     * @return mixed
     */
    
public function later($delay$job$data ''$queue null)
    {
        return 
$this->push($job$data$queue);
    }

    
/**
     * Pop the next job off of the queue.
     *
     * @param  string|null  $queue
     * @return IlluminateContractsQueueJob|null
     */
    
public function pop($queue null)
    {
        
//
    
}
}
Онлайн: 0
Реклама