RabbitMQ def回调( channel ,方法,属性,主体)

标签 rabbitmq pika python-pika

只想知道worker.py文件中参数的含义:

def callback(ch, method, properties, body):
    print " [x] Received %r" % (body,)
channel ,方法和属性是什么意思?

最佳答案

ch

“ch”是进行通信的“ channel ”。

将RabbitMQ连接分为两部分:

  • TCP/IP连接
  • 连接内的
  • channel

    实际的TCP/IP连接创建起来很昂贵,因此每个流程实例只需要一个连接。

    一个 channel 是使用RabbitMQ完成工作的地方。连接中存在一个 channel ,您需要具有 channel 引用,以便您可以确认/拒绝消息等。

    方法

    我认为“方法”是有关邮件传递的元信息

    当您想确认消息时-告诉RabbitMQ您已完成处理-需要 channel 和传递标签。交付标签来自method参数。

    我不确定为什么将其称为“方法”-也许与AMQP规范有关,其中“方法”是有关执行哪种AMQP方法的元数据?

    特性

    消息的“属性”是消息上用户定义的属性。您可以在这些属性中设置所需的任意键/值对,并可能获得诸如使用路由键之类的信息(尽管这可能来自“方法”)

    属性通常用于代码需要具有的数据位,但并不是实际消息主体的一部分。

    例如,如果您有一个重新排序程序来确保按顺序处理消息,则“属性”可能包含消息的序列号。

  • 关于RabbitMQ def回调( channel ,方法,属性,主体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34202345/

    相关文章:

    python - 使用 python 从 Windows 商店访问特定证书

    python - RabbitMQ python 库检查状态

    c# - .NET Client编程出现异常 'The AMQP operation was interrupted' (code=406)

    Python Kombu 消费者未收到 rabbitmq 消息通知(queue.get 有效)

    python - SelectConnection无法连接到rabbitmq

    导入pika时python没有模块名称pika

    java - spring amqp注解驱动一个队列两个监听器区分路由key

    Scala 与 Rabbit MQ 的集成

    python - RabbitMQ:Pika 连接因对等错误而重置