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

namespace IlluminateQueue;

use 
Exception;
use 
Throwable;
use 
IlluminateQueueJobsSyncJob;
use 
IlluminateContractsQueueJob;
use 
IlluminateContractsQueueQueue as QueueContract;

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

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

            
$queueJob->fire();

            
$this->raiseAfterJobEvent($queueJob);
        } catch (
Exception $e) {
            
$this->raiseExceptionOccurredJobEvent($queueJob$e);

            
$this->handleFailedJob($queueJob);

            throw 
$e;
        } catch (
Throwable $e) {
            
$this->raiseExceptionOccurredJobEvent($queueJob$e);

            
$this->handleFailedJob($queueJob);

            throw 
$e;
        }

        return 
0;
    }

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

    
/**
     * Push a new job onto the queue after a delay.
     *
     * @param  DateTime|int  $delay
     * @param  string  $job
     * @param  mixed   $data
     * @param  string  $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  $queue
     * @return IlluminateContractsQueueJob|null
     */
    
public function pop($queue null)
    {
        
//
    
}

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

    
/**
     * Raise the before queue job event.
     *
     * @param  IlluminateContractsQueueJob  $job
     * @return void
     */
    
protected function raiseBeforeJobEvent(Job $job)
    {
        
$data json_decode($job->getRawBody(), true);

        if (
$this->container->bound('events')) {
            
$this->container['events']->fire(new EventsJobProcessing('sync'$job$data));
        }
    }

    
/**
     * Raise the after queue job event.
     *
     * @param  IlluminateContractsQueueJob  $job
     * @return void
     */
    
protected function raiseAfterJobEvent(Job $job)
    {
        
$data json_decode($job->getRawBody(), true);

        if (
$this->container->bound('events')) {
            
$this->container['events']->fire(new EventsJobProcessed('sync'$job$data));
        }
    }

    
/**
     * Raise the exception occurred queue job event.
     *
     * @param  IlluminateContractsQueueJob  $job
     * @param  Throwable  $exception
     * @return void
     */
    
protected function raiseExceptionOccurredJobEvent(Job $job$exception)
    {
        
$data json_decode($job->getRawBody(), true);

        if (
$this->container->bound('events')) {
            
$this->container['events']->fire(new EventsJobExceptionOccurred('sync'$job$data$exception));
        }
    }

    
/**
     * Handle the failed job.
     *
     * @param  IlluminateContractsQueueJob  $job
     * @return array
     */
    
protected function handleFailedJob(Job $job)
    {
        
$job->failed();

        
$this->raiseFailedJobEvent($job);
    }

    
/**
     * Raise the failed queue job event.
     *
     * @param  IlluminateContractsQueueJob  $job
     * @return void
     */
    
protected function raiseFailedJobEvent(Job $job)
    {
        
$data json_decode($job->getRawBody(), true);

        if (
$this->container->bound('events')) {
            
$this->container['events']->fire(new EventsJobFailed('sync'$job$data));
        }
    }
}
Онлайн: 2
Реклама