RabbitMQ def 回调(通道、方法、属性、主体)
RabbitMQ def callback(ch, method, properties, body)
只想知道worker.py
文件中参数的含义:
def callback(ch, method, properties, body):
print " [x] Received %r" % (body,)
ch、方法和属性是什么意思?
通道
"ch" 是 "channel" 进行通信的地方。
将 RabbitMQ 连接分为两部分:
- TCP/IP 连接
- 连接中的频道
实际 TCP/IP 连接的创建成本很高,因此每个流程实例只需要一个连接。
通道是使用 RabbitMQ 完成工作的地方。一个连接中存在一个频道,您需要有频道参考,以便您可以 ack/nack 消息等
方法
我认为 "method" 是关于消息传递的元信息
当您想确认消息时 - 告诉 RabbitMQ 您已完成处理 - 您需要通道和传递标签。交付标签来自方法参数。
我不确定为什么叫它 "method" - 也许它与 AMQP 规范有关,其中 "method" 是关于执行了哪个 AMQP 方法的元数据?
属性
消息的 "properties" 是消息的用户定义属性。您可以在这些属性中设置任何您想要的任意键/值对,并可能使用诸如路由键之类的东西(尽管这可能来自 "method")
属性通常用于您的代码需要的数据位,但不是实际消息正文的一部分。
例如,如果您有一个重新排序程序来确保按顺序处理消息,"properties" 可能会包含消息的序列号。
只想知道worker.py
文件中参数的含义:
def callback(ch, method, properties, body):
print " [x] Received %r" % (body,)
ch、方法和属性是什么意思?
通道
"ch" 是 "channel" 进行通信的地方。
将 RabbitMQ 连接分为两部分:
- TCP/IP 连接
- 连接中的频道
实际 TCP/IP 连接的创建成本很高,因此每个流程实例只需要一个连接。
通道是使用 RabbitMQ 完成工作的地方。一个连接中存在一个频道,您需要有频道参考,以便您可以 ack/nack 消息等
方法
我认为 "method" 是关于消息传递的元信息
当您想确认消息时 - 告诉 RabbitMQ 您已完成处理 - 您需要通道和传递标签。交付标签来自方法参数。
我不确定为什么叫它 "method" - 也许它与 AMQP 规范有关,其中 "method" 是关于执行了哪个 AMQP 方法的元数据?
属性
消息的 "properties" 是消息的用户定义属性。您可以在这些属性中设置任何您想要的任意键/值对,并可能使用诸如路由键之类的东西(尽管这可能来自 "method")
属性通常用于您的代码需要的数据位,但不是实际消息正文的一部分。
例如,如果您有一个重新排序程序来确保按顺序处理消息,"properties" 可能会包含消息的序列号。