PHP Laravel 5 CLI завершает переопределение сигнала - PullRequest
0 голосов
/ 07 марта 2019

Выполняет ли PHP Laravel какую-либо очистку, когда он завершается завершающим сигналом ?

Например, следующий код:

class MyCommand extends Command
{
    protected $signature = 'get:help';
    protected $description = 'I need help';
    public function handle()
    {
        pcntl_async_signals(true);
        pcntl_signal(SIGTERM, [$this, "gracefullyShutdown"]);
        pcntl_signal(SIGINT, [$this, "gracefullyShutdown"]);

        // Do some procedure task here, no loop.
    }

    public function gracefullyShutdown()
    {
        // Do I need to do any clean up?
        //exit(0);
    }
}

Поскольку функция сигнала завершения была отменена, handle() продолжает работать.

Если я хочу позвонить exit(0) в gracefullyShutdown(), нужно ли освободить память или сделать что-нибудь еще до exit(0)?

Или я могу вызвать оригинальную функцию завершения как super.terminate() или что-то еще? (super.terminate() - псевдокод)

Я прочитал о Как изящно остановить команду CLI Laravel . Но его подход заключается в создании цикла while(true), прерывании и выполнении оставшегося кода. Где я хочу остановиться / return в любом месте handle().

1 Ответ

0 голосов
/ 07 марта 2019

Вы думали о том, чтобы просто очистить / уничтожить сеанс?

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