Rabbitmq消息块

时间:2019-01-08 07:39:52

标签: python rabbitmq

10.1.0.30和10.1.0.40是彼此通信的进程。我需要一种方法来阻止,除非其他人返回

Below is the sample code:

在服务器10.1.0.30上运行

def generate_execution_plan():

    channel.basic_publish(exchange='AAA',
                      routing_key='AAA',
                      body=json_data)

//  I need to block here unless  I receive callback from 10.1.0.40 .

在服务器10.1.0.40上运行

订阅“ AAA”上的主题的服务器上还有一个进程正在运行。此过程将消息发回到10.1.0.30

在继续之前是否可以无限期地阻止任何主题

1 个答案:

答案 0 :(得分:3)

在我看来,这个示例Remote Procedure Call应该符合您的要求。

Rpc diagram - available at provided link

www.rabbitmq.com提供的图表

想法是,当他完成操作后,您有10.1.0.40进程对特定队列的答复,并且在位于10.1.0.30的进程代码中,您侦听该队列。侦听器(如果配置正确)将无限期地侦听答复(尽管我个人建议实现某种超时)