Ejemplo n.º 1
0
    def send_request(self, service, subject, body, headers=None):
        if isinstance(service, InstanceSet):
            try:
                instance = self._pick_instance(service)
            except NotConnected as ex:
                logger.warning('cannot send request (%s) subject=%s', ex,
                               subject)
                raise
            else:
                endpoint = instance.endpoint
                version = instance.version
        else:
            endpoint = service
            version = None

        msg = Message(
            msg_type=Message.REQ,
            subject=subject,
            body=body,
            source=self.endpoint,
            headers=self.prepare_headers(headers,
                                         version=serialize_version(version)),
        )
        channel = RequestChannel(msg, self)
        self.channels[msg.id] = channel
        self._send_message(endpoint, msg)
        return channel
Ejemplo n.º 2
0
 def send_reply(self, msg, body, msg_type=Message.REP, headers=None):
     reply_msg = Message(
         msg_type=msg_type,
         subject=msg.id,
         body=body,
         source=self.endpoint,
         headers=self.prepare_headers(headers),
     )
     self.send_message(msg.source, reply_msg)
     return reply_msg
Ejemplo n.º 3
0
 def send_request(self, address, subject, body, headers=None):
     msg = Message(
         msg_type=Message.REQ,
         subject=subject,
         body=body,
         source=self.endpoint,
         headers=self.prepare_headers(headers),
     )
     reply_channel = ReplyChannel(msg, self)
     self.channels[msg.id] = reply_channel
     self.send_message(address, msg)
     return reply_channel
Ejemplo n.º 4
0
 def send_request(self, service, subject, body, headers=None):
     msg = Message(
         msg_type=Message.REQ,
         subject=subject,
         body=body,
         source=self.endpoint,
         headers=self.prepare_headers(headers),
     )
     channel = RequestChannel(msg, self)
     self.channels[msg.id] = channel
     try:
         endpoint = self._pick_endpoint(service)
     except NotConnected:
         logger.error('cannot send message (no instance): %s', msg)
     else:
         self._send_message(endpoint, msg)
     return channel