diff --git a/UPGRADE-7.0.md b/UPGRADE-7.0.md index ae620a5a7ead4..dab8f81de61cb 100644 --- a/UPGRADE-7.0.md +++ b/UPGRADE-7.0.md @@ -170,8 +170,8 @@ Messenger * Add parameter `$isSameDatabase` to `DoctrineTransport::configureSchema()` * Remove `MessageHandlerInterface` and `MessageSubscriberInterface`, use `#[AsMessageHandler]` instead - * Remove `StopWorkerOnSigtermSignalListener` in favor of - `StopWorkerOnSignalsListener` and make it configurable with SIGINT and + * Remove `StopWorkerOnSigtermSignalListener` in favor of using the `SignalableCommandInterface` + * Remove `StopWorkerOnSignalsListener` in favor of using the `SignalableCommandInterface` * Remove `Symfony\Component\Messenger\Transport\InMemoryTransport` and `Symfony\Component\Messenger\Transport\InMemoryTransportFactory` in favor of `Symfony\Component\Messenger\Transport\InMemory\InMemoryTransport` and diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 2d3b0cf10c911..2c8cd891bcb47 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -108,7 +108,6 @@ use Symfony\Component\Messenger\Attribute\AsMessageHandler; use Symfony\Component\Messenger\Bridge as MessengerBridge; use Symfony\Component\Messenger\Command\StatsCommand; -use Symfony\Component\Messenger\EventListener\StopWorkerOnSignalsListener; use Symfony\Component\Messenger\Handler\BatchHandlerInterface; use Symfony\Component\Messenger\MessageBus; use Symfony\Component\Messenger\MessageBusInterface; @@ -2035,12 +2034,6 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder $container->getDefinition('messenger.transport.beanstalkd.factory')->addTag('messenger.transport_factory'); } - if (!class_exists(StopWorkerOnSignalsListener::class)) { - $container->removeDefinition('messenger.listener.stop_worker_signals_listener'); - } elseif ($config['stop_worker_on_signals']) { - $container->getDefinition('messenger.listener.stop_worker_signals_listener')->replaceArgument(0, $config['stop_worker_on_signals']); - } - if (null === $config['default_bus'] && 1 === \count($config['buses'])) { $config['default_bus'] = key($config['buses']); } diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.php b/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.php index 56b50d78dc0f0..556affd070c6f 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.php @@ -23,7 +23,6 @@ use Symfony\Component\Messenger\EventListener\SendFailedMessageToFailureTransportListener; use Symfony\Component\Messenger\EventListener\StopWorkerOnCustomStopExceptionListener; use Symfony\Component\Messenger\EventListener\StopWorkerOnRestartSignalListener; -use Symfony\Component\Messenger\EventListener\StopWorkerOnSignalsListener; use Symfony\Component\Messenger\Handler\RedispatchMessageHandler; use Symfony\Component\Messenger\Middleware\AddBusNameStampMiddleware; use Symfony\Component\Messenger\Middleware\DispatchAfterCurrentBusMiddleware; @@ -201,15 +200,6 @@ ->tag('kernel.event_subscriber') ->tag('monolog.logger', ['channel' => 'messenger']) - ->set('messenger.listener.stop_worker_signals_listener', StopWorkerOnSignalsListener::class) - ->deprecate('6.4', 'symfony/messenger', 'The "%service_id%" service is deprecated, use the "Symfony\Component\Console\Command\SignalableCommandInterface" instead.') - ->args([ - null, - service('logger')->ignoreOnInvalid(), - ]) - ->tag('kernel.event_subscriber') - ->tag('monolog.logger', ['channel' => 'messenger']) - ->set('messenger.listener.stop_worker_on_stop_exception_listener', StopWorkerOnCustomStopExceptionListener::class) ->tag('kernel.event_subscriber') diff --git a/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Fixtures/long_receiver.php b/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Fixtures/long_receiver.php index 5aaca31e88cd0..35dccc1ae26e6 100644 --- a/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Fixtures/long_receiver.php +++ b/src/Symfony/Component/Messenger/Bridge/Amqp/Tests/Fixtures/long_receiver.php @@ -17,7 +17,6 @@ use Symfony\Component\Messenger\Bridge\Amqp\Transport\Connection; use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\EventListener\DispatchPcntlSignalListener; -use Symfony\Component\Messenger\EventListener\StopWorkerOnSignalsListener; use Symfony\Component\Messenger\MessageBusInterface; use Symfony\Component\Messenger\Transport\Serialization\Serializer; use Symfony\Component\Messenger\Worker; @@ -33,7 +32,6 @@ $connection = Connection::fromDsn(getenv('DSN')); $receiver = new AmqpReceiver($connection, $serializer); $eventDispatcher = new EventDispatcher(); -$eventDispatcher->addSubscriber(new StopWorkerOnSignalsListener()); $eventDispatcher->addSubscriber(new DispatchPcntlSignalListener()); $worker = new Worker(['the_receiver' => $receiver], new class() implements MessageBusInterface { @@ -49,5 +47,7 @@ public function dispatch($envelope, array $stamps = []): Envelope } }, $eventDispatcher); +pcntl_signal(15, fn () => $worker->stop()); + echo "Receiving messages...\n"; $worker->run(); diff --git a/src/Symfony/Component/Messenger/CHANGELOG.md b/src/Symfony/Component/Messenger/CHANGELOG.md index 3afc0fe89e116..469391af6c8e4 100644 --- a/src/Symfony/Component/Messenger/CHANGELOG.md +++ b/src/Symfony/Component/Messenger/CHANGELOG.md @@ -6,8 +6,8 @@ CHANGELOG * Add parameter `$isSameDatabase` to `DoctrineTransport::configureSchema()` * Remove `MessageHandlerInterface` and `MessageSubscriberInterface`, use `#[AsMessageHandler]` instead - * Remove `StopWorkerOnSigtermSignalListener` in favor of - `StopWorkerOnSignalsListener` and make it configurable with SIGINT and + * Remove `StopWorkerOnSigtermSignalListener` in favor of using the `SignalableCommandInterface` + * Remove `StopWorkerOnSignalsListener` in favor of using the `SignalableCommandInterface` * Remove `Symfony\Component\Messenger\Transport\InMemoryTransport` and `Symfony\Component\Messenger\Transport\InMemoryTransportFactory` in favor of `Symfony\Component\Messenger\Transport\InMemory\InMemoryTransport` and diff --git a/src/Symfony/Component/Messenger/EventListener/StopWorkerOnSignalsListener.php b/src/Symfony/Component/Messenger/EventListener/StopWorkerOnSignalsListener.php deleted file mode 100644 index 6641d417d333e..0000000000000 --- a/src/Symfony/Component/Messenger/EventListener/StopWorkerOnSignalsListener.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * 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\Console\Command\SignalableCommandInterface; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Symfony\Component\Messenger\Event\WorkerStartedEvent; - -/** - * @author Tobias Schultze - * @author Grégoire Pineau - * - * @deprecated since Symfony 6.4, use the {@see SignalableCommandInterface} instead - */ -class StopWorkerOnSignalsListener implements EventSubscriberInterface -{ - private array $signals; - private ?LoggerInterface $logger; - - public function __construct(array $signals = null, LoggerInterface $logger = null) - { - if (null === $signals && \defined('SIGTERM')) { - $signals = [\SIGTERM, \SIGINT]; - } - $this->signals = $signals ?? []; - $this->logger = $logger; - } - - public function onWorkerStarted(WorkerStartedEvent $event): void - { - foreach ($this->signals as $signal) { - pcntl_signal($signal, function () use ($event, $signal) { - $this->logger?->info('Received signal {signal}.', ['signal' => $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], - ]; - } -} pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy