vendor/symfony/messenger/EventListener/StopWorkerOnSigtermSignalListener.php line 30
<?php/** This file is part of the Symfony package.** (c) Fabien Potencier <fabien@symfony.com>** For the full copyright and license information, please view the LICENSE* file that was distributed with this source code.*/namespace Symfony\Component\Messenger\EventListener;use Psr\Log\LoggerInterface;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\Messenger\Event\WorkerStartedEvent;/*** @author Tobias Schultze <http://tobion.de>*/class StopWorkerOnSigtermSignalListener implements EventSubscriberInterface{private ?LoggerInterface $logger;public function __construct(LoggerInterface $logger = null){$this->logger = $logger;}public function onWorkerStarted(WorkerStartedEvent $event): void{pcntl_signal(\SIGTERM, function () use ($event) {$this->logger?->info('Received SIGTERM signal.', ['transport_names' => $event->getWorker()->getMetadata()->getTransportNames()]);$event->getWorker()->stop();});}public static function getSubscribedEvents(): array{if (!\function_exists('pcntl_signal')) {return [];}return [WorkerStartedEvent::class => ['onWorkerStarted', 100],];}}