如果队列中的消息达到队列的大小或我在rabbitmq中指定的某个限制,而不是监视队列并启动另一个实例,我试图看看我是否可以让我的rabbitmq启动另一个worker手动工人。非常感谢任何建议。
答案 0 :(得分:0)
我认为一个解决方案可能是你有一个"队列"管理“消费者”的工作者"工作人员。 "队列" worker不断轮询队列,询问队列消息的计数。当消息计数达到某个阈值(上升或下降)时,"队列"工作人员启动消费者从池中取出它或阻止正在运行的消费者。
"队列"工作人员必须保持活跃消费者数量的状态,以便了解是否必须启动一个新的消费者"工人。
用于计算是否有必要启动/停止新消费者的原始示例或公式可能是:
START integer_part(number_of_messages_in_queue / threshold)> active_cosumers_workers_count
STOP integer_part(number_of_messages_in_queue / threshold)< active_cosumers_workers_count
示例:
integer_part(49/10)> 4 - > 4> 4 - >假(什么都不做)
integer_part(49/10)> 4 - > 4< 4 - >假(什么都不做)
integer_part(50/10)> 4 - > 5> 4 = true(旋转新"工人"消费者)
integer_part(39/10)< 4 - > 3< 4 =真(停止"工人"消费者)
答案 1 :(得分:0)
rabbitmq-management插件提供基于HTTP的API,用于管理和监控RabbitMQ服务器。一个想法是轮询HTTP API队列长度并根据长度启动或取消工作人员。