22 private $exchangeRepository;
27 private $envelopeFactory;
32 private $messageEncoder;
37 private $messageValidator;
42 private $publisherConfig;
47 private $messageIdGenerator;
62 PublisherConfig $publisherConfig,
65 $this->exchangeRepository = $exchangeRepository;
66 $this->envelopeFactory = $envelopeFactory;
67 $this->messageEncoder = $messageEncoder;
68 $this->messageValidator = $messageValidator;
69 $this->publisherConfig = $publisherConfig;
70 $this->messageIdGenerator = $messageIdGenerator;
80 $this->messageValidator->validate($topicName,
$message);
82 $envelopes[] = $this->envelopeFactory->create(
87 'message_id' => $this->messageIdGenerator->generate($topicName),
92 $publisher = $this->publisherConfig->getPublisher($topicName);
93 $connectionName = $publisher->getConnection()->getName();
94 $exchange = $this->exchangeRepository->getByConnectionName($connectionName);
95 $exchange->enqueue($topicName, $envelopes);
__construct(ExchangeRepository $exchangeRepository, EnvelopeFactory $envelopeFactory, MessageEncoder $messageEncoder, MessageValidator $messageValidator, PublisherConfig $publisherConfig, \Magento\Framework\MessageQueue\MessageIdGeneratorInterface $messageIdGenerator)
publish($topicName, $data)