19 private $queueFactories;
24 private $connectionTypeResolver;
45 array $queueFactories = []
48 $this->queueFactories = $queueFactories;
49 $this->connectionTypeResolver = $connectionTypeResolver;
56 public function create($queueName, $connectionName)
58 $connectionType = $this->connectionTypeResolver->getConnectionType($connectionName);
59 if (!isset($this->queueFactories[$connectionType])) {
60 throw new \LogicException(
"Not found queue for connection name '{$connectionName}' in config");
62 $factory = $this->queueFactories[$connectionType];
66 $queueInterface = \Magento\Framework\MessageQueue\QueueInterface::class;
67 throw new \LogicException(
68 "Queue for connection name '{$connectionName}' does not implement interface '{$queueInterface}'"
create($queueName, $connectionName)
__construct(ConnectionTypeResolver $connectionTypeResolver, \Magento\Framework\ObjectManagerInterface $objectManager, array $queueFactories=[])