RabbitMQ def回调(ch、方法、属性、正文)

RabbitMQ def回调(ch、方法、属性、正文),rabbitmq,pika,python-pika,Rabbitmq,Pika,Python Pika,只想知道worker.py文件中参数的含义: def callback(ch, method, properties, body): print " [x] Received %r" % (body,) ch、方法和属性的含义是什么?ch “ch”是通信发生的“通道” 将RabbitMQ连接分为两部分: TCP/IP连接 连接中的通道 实际的TCP/IP连接的创建成本很高,因此每个进程实例只需要一个连接 通道是使用RabbitMQ完成工作的地方。连接中存在一个通

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

def callback(ch, method, properties, body):
    print " [x] Received %r" % (body,)
ch、方法和属性的含义是什么?

ch “ch”是通信发生的“通道”

将RabbitMQ连接分为两部分:

  • TCP/IP连接
  • 连接中的通道
实际的TCP/IP连接的创建成本很高,因此每个进程实例只需要一个连接

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

方法 我认为“方法”是关于消息传递的元信息

当您想要确认消息时(告诉RabbitMQ您已经完成了对它的处理),您需要通道和传递标记。传递标记来自方法参数

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

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

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

例如,如果您有一个re sequencer进程来确保消息按顺序处理,“属性”可能会包含消息的序列号