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

namespace IlluminateConsoleScheduling;

use 
IlluminateConsoleCommand;
use 
IlluminateSupportCarbon;
use 
SymfonyComponentConsoleAttributeAsCommand;
use 
SymfonyComponentProcessProcess;

#[AsCommand(name: 'schedule:work')]
class ScheduleWorkCommand extends Command
{
    
/**
     * The console command name.
     *
     * @var string
     */
    
protected $name 'schedule:work';

    
/**
     * The name of the console command.
     *
     * This name is used to identify the command during lazy loading.
     *
     * @var string|null
     *
     * @deprecated
     */
    
protected static $defaultName 'schedule:work';

    
/**
     * The console command description.
     *
     * @var string
     */
    
protected $description 'Start the schedule worker';

    
/**
     * Execute the console command.
     *
     * @return void
     */
    
public function handle()
    {
        
$this->components->info('Running schedule tasks every minute.');

        [
$lastExecutionStartedAt$executions] = [null, []];

        while (
true) {
            
usleep(100 1000);

            if (
Carbon::now()->second === &&
                ! 
Carbon::now()->startOfMinute()->equalTo($lastExecutionStartedAt)) {
                
$executions[] = $execution = new Process([
                    
PHP_BINARY,
                    
defined('ARTISAN_BINARY') ? ARTISAN_BINARY 'artisan',
                    
'schedule:run',
                ]);

                
$execution->start();

                
$lastExecutionStartedAt Carbon::now()->startOfMinute();
            }

            foreach (
$executions as $key => $execution) {
                
$output $execution->getIncrementalOutput().
                          
$execution->getIncrementalErrorOutput();

                
$this->output->write(ltrim($output"n"));

                if (! 
$execution->isRunning()) {
                    unset(
$executions[$key]);
                }
            }
        }
    }
}
Онлайн: 0
Реклама