gpt4 book ai didi

python - 如何从回调中获取信息

转载 作者:行者123 更新时间:2023-12-01 07:20:28 25 4
gpt4 key购买 nike

我只是想知道如何从回调中获取数据。

import pika


def callback(channel, method, properties, body):
print(method.get_body())
print(method.get_properties())
channel.basic_ack(delivery_tag=method.delivery_tag)

def on_open(connection):
connection.channel(on_open_callback=on_channel_open)


def on_channel_open(channel):
channel.basic_consume(on_message_callback = callback, queue='q1')
channel.basic_consume(on_message_callback = callback, queue='q2')


credentials = pika.PlainCredentials('user', 'password', erase_on_connect=False)
params = pika.ConnectionParameters("localhost", 5672, '/', credentials)

connection = pika.SelectConnection(parameters=params,
on_open_callback=on_open)

try:
connection.ioloop.start()
except KeyboardInterrupt:
connection.close()

connection.ioloop.start()

回调中两个打印行的输出是:

<class 'pika.spec.Basic.Deliver'>
<Basic.Deliver(['consumer_tag=ctag1.2607da3f5f9f4e5592991a16cc0aca6e', 'delivery_tag=1', 'exchange=gatekeeper', 'redelivered=True', 'routing_key=laa'])>

如何提取“routing_key”?查看源代码后,我相信 method.get_properties() 会起作用,但事实并非如此。

最佳答案

尽管记录很少,callback 函数将使用 4 个参数调用:

  • 您消费的 channel
  • Method 实例(在本例中为 Deliver 实例)
  • 一个BasicProperties实例
  • 正文(字节)

Deliver 实例将具有一个名为 routing_key 的属性。所以你的函数可能如下所示:

def callback(channel, method, properties, body):
print(method.get_body())
print(method.get_properties())
print(method.routing_key)
channel.basic_ack(delivery_tag=method.delivery_tag)
PS。调用回调的参数与 here 中描述的相同。 ,它们 实际记录在其中。

关于python - 如何从回调中获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57725991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com