Exemplo n.º 1
0
Arquivo: net.py Projeto: zaheerm/feat
    def parse_message(self, msg):
        result = self.unserializer.convert(msg.content.body)

        if result.message_id in self._seen_messages:
            debug_message(">>>X", result, "DUPLICATED")
            return

        debug_message(">>>>", result)

        self._seen_messages.set(result.message_id, True,
                                expiration=result.expiration_time)
        return result
Exemplo n.º 2
0
Arquivo: unix.py Projeto: f3at/feat
 def on_message(self, message):
     key = (message.recipient.key, message.recipient.route)
     self.log("Master broker dispatches the message with key: %r", key)
     if key not in self._slaves:
         debug_message("X--M", message, "UNKNOWN KEY")
         self.warning("Don't know what to do, with this message, the key "
                      "is %r, slaves we know: %r",
                      key, self._slaves.keys())
     else:
         debug_message("<--M", message)
         data = self._serializer.convert(message)
         d = [s.dispatch(data) for s in self._slaves[key]]
         return defer.DeferredList(d, consumeErrors=True)
Exemplo n.º 3
0
Arquivo: net.py Projeto: zaheerm/feat
    def _publish(self, key, shard, message):
        assert isinstance(message, BaseMessage), "Unexpected message class"
        if message.expiration_time:
            delta = message.expiration_time - time.time()
            if delta < 0:
                debug_message("X<<<", message, "EXPIRED")
                self.log('Not sending expired message. msg=%s, shard=%s, '
                         'key=%s, delta=%r', message, shard, key, delta)
                return

        serialized = self.serializer.convert(message)
        content = Content(serialized)
        content.properties['delivery mode'] = 1  # non-persistent

        self.log('Publishing msg=%s, shard=%s, key=%s', message, shard, key)
        if shard is None:
            debug_message("X<<<", message, "SHARD IS NONE")
            self.error('Tried to send message to exchange=None. This would '
                       'mess up the whole txamqp library state, therefore '
                       'this message is ignored')
            return defer.succeed(None)

        debug_message("<<<<", message)

        d = self.channel.basic_publish(exchange=shard, content=content,
                                       routing_key=key, immediate=False)
        d.addCallback(defer.drop_param, self.channel.tx_commit)
        d.addCallback(defer.override_result, message)
        return d
Exemplo n.º 4
0
Arquivo: unix.py Projeto: f3at/feat
 def remote_dispatch(self, data):
     message = self._unserializer.convert(data)
     debug_message("M-->", message)
     self._messaging.dispatch(message, outgoing=True)
Exemplo n.º 5
0
Arquivo: unix.py Projeto: f3at/feat
 def on_message(self, message):
     debug_message("<--S", message)
     data = self._serializer.convert(message)
     return self._master.callRemote('dispatch', data)