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

namespace IlluminateQueueConsole;

use 
IlluminateSupportArr;
use 
IlluminateConsoleCommand;

class 
ListFailedCommand extends Command
{
    
/**
     * The console command name.
     *
     * @var string
     */
    
protected $name 'queue:failed';

    
/**
     * The console command description.
     *
     * @var string
     */
    
protected $description 'List all of the failed queue jobs';

    
/**
     * The table headers for the command.
     *
     * @var array
     */
    
protected $headers = ['ID''Connection''Queue''Class''Failed At'];

    
/**
     * Execute the console command.
     *
     * @return void
     */
    
public function fire()
    {
        
$jobs $this->getFailedJobs();

        if (
count($jobs) == 0) {
            return 
$this->info('No failed jobs!');
        }

        
$this->displayFailedJobs($jobs);
    }

    
/**
     * Compile the failed jobs into a displayable format.
     *
     * @return array
     */
    
protected function getFailedJobs()
    {
        
$results = [];

        foreach (
$this->laravel['queue.failer']->all() as $failed) {
            
$results[] = $this->parseFailedJob((array) $failed);
        }

        return 
array_filter($results);
    }

    
/**
     * Parse the failed job row.
     *
     * @param  array  $failed
     * @return array
     */
    
protected function parseFailedJob(array $failed)
    {
        
$row array_values(Arr::except($failed, ['payload']));

        
array_splice($row30$this->extractJobName($failed['payload']));

        return 
$row;
    }

    
/**
     * Extract the failed job name from payload.
     *
     * @param  string  $payload
     * @return string|null
     */
    
private function extractJobName($payload)
    {
        
$payload json_decode($payloadtrue);

        if (
$payload && (! isset($payload['data']['command']))) {
            return 
Arr::get($payload'job');
        }

        if (
$payload && isset($payload['data']['command'])) {
            
preg_match('/"([^"]+)"/'$payload['data']['command'], $matches);

            if (isset(
$matches[1])) {
                return 
$matches[1];
            } else {
                return 
Arr::get($payload'job');
            }
        }
    }

    
/**
     * Display the failed jobs in the console.
     *
     * @param  array  $jobs
     * @return void
     */
    
protected function displayFailedJobs(array $jobs)
    {
        
$this->table($this->headers$jobs);
    }
}
Онлайн: 0
Реклама