我试图在RabbitMQ中保持与多个队列的连接。每当我从其中一个队列中弹出新消息时,我都希望产生一个外部进程。
此过程将需要一些时间来处理消息,并且我不想开始处理来自该特定队列的另一条消息,直到我之前弹出的消息完成为止。如果可能的话,我不想保留进程/线程,只是等待外部进程完成并确认服务器。理想情况下,我想在这个外部进程中执行,可能会传递一些标识符,以便它可以连接到RabbitMQ并确认消息。
是否可以使用RabbitMQ设计此系统?如果这与答案相关,我会使用Python和Pika。
谢谢!
答案 0 :(得分:0)
RabbitMQ可以做到这一点。
您只想在准备就绪时读取队列 - 因此启动可以产生外部进程并观察它的线程,然后在进程完成时从队列中获取下一条消息。然后,您可以并行运行多个线程来管理多个队列。
我不确定你想要什么?您是否试图阻止RabbitMQ向该队列添加新元素(如果它太满(因为它的元素处理太慢/根本没有)?当您向队列添加消息时,可能有一种方法可以执行此操作 - 在添加项目之前,请检查以确保该队列中已有的消息数量不超过"所有队列的平均值?