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

时间:2015-12-10 12:49:15

标签: rabbitmq pika python-pika

只想知道worker.py文件中的参数名称:

def callback(ch, method, properties, body):
    print " [x] Received %r" % (body,)

ch,方法,属性是什么意思?

1 个答案:

答案 0 :(得分:4)

CH

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

将RabbitMQ连接分为两部分:

  • TCP / IP连接
  • 连接中的渠道

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

通道是RabbitMQ完成工作的地方。一个通道存在于一个连接中,你需要有一个通道引用,这样你就可以确认/删除消息等。

方法

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

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

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

属性

消息的“属性”是消息上的用户定义属性。您可以在这些属性中设置任何您想要的任意键/值对,并可能使用路由键(尽管这可能来自“方法”)

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

例如,如果您有一个重新定序器进程以确保按顺序处理消息,那么“属性”可能包含消息的序列号。