gpt4 book ai didi

python - RabbitMQ basic_publish 是异步的吗?

转载 作者:行者123 更新时间:2023-11-28 22:22:38 25 4
gpt4 key购买 nike

我有以下生产者代码。

message是经过一些计算得到的dict数据。我想向队列发布消息。然后我将 message 重置为一个空字典以进行其他一些计算。但是消费者总是从队列中得到一个空的字典。我觉得 message 在发布之前被重置了(它是异步的吗?)。如何使其同步?

message = {a big dict ...}
channel.basic_publish(exchange='',
routing_key='my_queue',
body=json.dumps(message))
message = {}

最佳答案

是的,channel.basic_publish是async的,这种方式是正确的。

channel.basic_publish 不等待插入时间,否则会很慢。

你应该改变你处理信息的方式,但是如果你想同步你可以使用事务。

应该是这样的:

channel.tx_select
channel.basic_publish(exchange='',
routing_key='my_queue',
body=json.dumps(message))
channel.tx_commit

注意交易会降低性能。

Read here更多详情

关于python - RabbitMQ basic_publish 是异步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47593252/

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