Вход Регистрация
Файл: 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 $job, Throwable $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 $queueJob, Throwable $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)
    {
        
//
    
}
}
Онлайн: 3
Реклама