<?phpnamespace Enqueue\Symfony\Client;use Enqueue\Client\SpoolProducer;use Symfony\Component\Console\ConsoleEvents;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\HttpKernel\KernelEvents;class FlushSpoolProducerListener implements EventSubscriberInterface{ /** * @var SpoolProducer */ private $producer; public function __construct(SpoolProducer $producer) { $this->producer = $producer; } public function flushMessages() { $this->producer->flush(); } /** * {@inheritdoc} */ public static function getSubscribedEvents(): array { $events = []; if (class_exists(KernelEvents::class)) { $events[KernelEvents::TERMINATE] = 'flushMessages'; } if (class_exists(ConsoleEvents::class)) { $events[ConsoleEvents::TERMINATE] = 'flushMessages'; } return $events; }}