diff --git a/oslo_messaging/_drivers/zmq_driver/client/publishers/dealer/zmq_dealer_publisher_direct.py b/oslo_messaging/_drivers/zmq_driver/client/publishers/dealer/zmq_dealer_publisher_direct.py index ccecda631..86c92a32b 100644 --- a/oslo_messaging/_drivers/zmq_driver/client/publishers/dealer/zmq_dealer_publisher_direct.py +++ b/oslo_messaging/_drivers/zmq_driver/client/publishers/dealer/zmq_dealer_publisher_direct.py @@ -72,12 +72,14 @@ class DealerPublisherDirect(zmq_dealer_publisher_base.DealerPublisherBase): socket.connect_to_host(host) def acquire_connection(self, request): - socket = self.sockets_manager.get_socket() if request.msg_type in zmq_names.DIRECT_TYPES: + socket = self.sockets_manager.get_socket() self._get_round_robin_host_connection(request.target, socket) + return socket elif request.msg_type in zmq_names.MULTISEND_TYPES: + socket = self.sockets_manager.get_socket(immediate=False) self._get_fanout_connection(request.target, socket) - return socket + return socket def _finally_unregister(self, socket, request): super(DealerPublisherDirect, self)._finally_unregister(socket, request) diff --git a/oslo_messaging/_drivers/zmq_driver/client/zmq_sockets_manager.py b/oslo_messaging/_drivers/zmq_driver/client/zmq_sockets_manager.py index b94fc6fb2..7ce0b705e 100644 --- a/oslo_messaging/_drivers/zmq_driver/client/zmq_sockets_manager.py +++ b/oslo_messaging/_drivers/zmq_driver/client/zmq_sockets_manager.py @@ -33,9 +33,9 @@ class SocketsManager(object): self.socket_to_routers = None self.sockets = {} - def get_socket(self): + def get_socket(self, immediate=True): return zmq_socket.ZmqSocket(self.conf, self.zmq_context, - self.socket_type, immediate=False) + self.socket_type, immediate=immediate) def get_cached_socket(self, target_key, hosts=None, immediate=True): hosts = [] if hosts is None else hosts