objectManager = $objectManager;
$this->queueFactories = $queueFactories;
$this->connectionTypeResolver = $connectionTypeResolver;
}
/**
* {@inheritdoc}
* @since 103.0.0
*/
public function create($queueName, $connectionName)
{
$connectionType = $this->connectionTypeResolver->getConnectionType($connectionName);
if (!isset($this->queueFactories[$connectionType])) {
throw new \LogicException("Not found queue for connection name '{$connectionName}' in config");
}
$factory = $this->queueFactories[$connectionType];
$queue = $factory->create($queueName, $connectionName);
if (!$queue instanceof QueueInterface) {
$queueInterface = \Magento\Framework\MessageQueue\QueueInterface::class;
throw new \LogicException(
"Queue for connection name '{$connectionName}' does not implement interface '{$queueInterface}'"
);
}
return $queue;
}
}