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. public static function getSubscribedEvents(): array
  22. {
  23. $events = [];
  24. if (class_exists(KernelEvents::class)) {
  25. $events[KernelEvents::TERMINATE] = 'flushMessages';
  26. }
  27. if (class_exists(ConsoleEvents::class)) {
  28. $events[ConsoleEvents::TERMINATE] = 'flushMessages';
  29. }
  30. return $events;
  31. }
  32. }