Как я могу поймать исключение тайм-аута в очереди laravel - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть очередь драйвера базы данных Laravel и супервизор в Docker.

Я знаю, что очередь может отключиться за исключением:

Процесс "'/ usr / local / bin / php'' ремесленник 'queue: work' '--once --queue =' default '--delay = 0 --memory = 128 --sleep = 3 --tries = 3 "превысил тайм-аут 60 секунд.{"исключение": "[объект] (Symfony \ Component \ Process \ Exception \ ProcessTimedOutException (код: 0): процесс \" '/ usr / local / bin / php' 'ремесленник' очередь: работа '' --once--queue = 'default' --delay = 0 --memory = 128 --sleep = 3 --tries = 3 \ "превысил тайм-аут 60 секунд. В /app/vendor/symfony/process/Process.php:1236)

Как я могу поймать исключение в моем коде, когда я помещаю свою очередь в контроллер, не давая отключить весь сервер с таймаутом Getaway

Queue::pushOn('default', new Adservice());


[program:laravel-worker]
command=php /app/artisan queue:listen database --queue=default --tries=1 
autostart=true
autorestart=true
user=root
numprocs=1
priority=1
redirect_stderr=true
stdout_logfile=/app/storage/logs/supervisor.log

// Adservice

public function handle(){ 
$this->timeout=3;
$time_start = microtime(true);
try{
 usleep(100);
 $time_end = microtime(true);
    $time = $time_end - $time_start;
    dump($time);//13
 }catch(\Exception $e){
          Log::error('GetCsvFromSftp.php: '.date("Y-m-d H:i:s").$e);
          throw $e; // rethrow to make job fail
        }

}

Также я не могу убить задание, установив тайм-аут внутри переменной pcntl поддержки задания в php.ini включён

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...