微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Qpid Proton Python:关闭前发送多条消息

如何解决Qpid Proton Python:关闭前发送多条消息

我之前用过RabbitMQ,了解到建立连接的开销很大,我们应该尽量保持一个连接活着来发送消息。在 Python 中,这非常简单,因为您可以将连接创建为可以独立于发送或消费逻辑而关闭的对象。

connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='',routing_key='',body='Hello World!')
connection.close()

遗憾的是,Python Qpid Proton 库没有很好的文档记录。至少对于我这样的菜鸟来说,很难理解。查看网站提供的示例代码,您需要为每条要发送的消息实例化一个 MessagingHandler 对象,其中包括打开和关闭连接。

class MessageHandler(MessagingHandler):
    def __init__(self,message: dict):
        super(MessageHandler,self).__init__()
        self.conn_url = HOST
        self.address = ADDRESS
        self.message_body = json.dumps(message)

    def on_start(self,message):
        conn = message.container.connect(self.conn_url)
        message.container.create_sender(conn,self.address)

    def on_sendable(self,message):
        message = Message(self.message_body)
        message.sender.send(message)
        message.sender.close()
        message.connection.close()

Container(MessageHandler({"title":"test"})).run()

现在,基于此,我觉得为我要发送的每条消息实例化一个处理程序有点愚蠢,从而每次都打开和关闭一个新连接。我觉得我一定错过了一些东西,因为我无法想象这是做到这一点的正确方法

有什么建议吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。