예제 #1
0
파일: net.py 프로젝트: sylane/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:
                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:
            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)
        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
예제 #2
0
파일: messaging.py 프로젝트: pepribas/F3AT
    def publish(self, key, shard, message):
        assert isinstance(message, BaseMessage)
        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)
        d = self.channel.basic_publish(exchange=shard, content=content,
                                       routing_key=key, immediate=False)
        d.addCallback(self.tx_commit)
        return d
예제 #3
0
파일: messaging.py 프로젝트: kowalski/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:
                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)
        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