RabbitMQ定义回调(ch、方法、属性、主体)



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

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

ch、方法和属性是什么意思?

ch

"ch"是进行通信的"通道"。

将RabbitMQ连接分为两部分:

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

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

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

方法

我认为"方法"是关于信息传递的元信息

当您想要确认消息时——告诉RabbitMQ您已经完成了处理——您需要通道和传递标签。delivery标签来自方法参数。

我不知道为什么这被称为"方法"——也许它与AMQP规范有关,其中"方法"是关于哪个AMQP方法被执行的元数据?

特性

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

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

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

相关内容

  • 没有找到相关文章

最新更新