vendor/enqueue/enqueue/Symfony/Client/FlushSpoolProducerListener.php line 22

Open in your IDE?
  1. <?php
  2. namespace Enqueue\Symfony\Client;
  3. use Enqueue\Client\SpoolProducer;
  4. use Symfony\Component\Console\ConsoleEvents;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\HttpKernel\KernelEvents;
  7. class FlushSpoolProducerListener implements EventSubscriberInterface
  8. {
  9.     /**
  10.      * @var SpoolProducer
  11.      */
  12.     private $producer;
  13.     public function __construct(SpoolProducer $producer)
  14.     {
  15.         $this->producer $producer;
  16.     }
  17.     public function flushMessages()
  18.     {
  19.         $this->producer->flush();
  20.     }
  21.     /**
  22.      * {@inheritdoc}
  23.      */
  24.     public static function getSubscribedEvents(): array
  25.     {
  26.         $events = [];
  27.         if (class_exists(KernelEvents::class)) {
  28.             $events[KernelEvents::TERMINATE] = 'flushMessages';
  29.         }
  30.         if (class_exists(ConsoleEvents::class)) {
  31.             $events[ConsoleEvents::TERMINATE] = 'flushMessages';
  32.         }
  33.         return $events;
  34.     }
  35. }