我希望消费者在每次收到消息时执行某些操作。消费者必须全天候“监听”队列,或者只有在收到适当的消息时才能运行吗?
答案 0 :(得分:2)
我不确定你的问题是否有意义。消息只能由队列的使用者从队列中接收。要知道消息是否在队列中,必须查看队列。这样做的唯一方法是成为消费者。
如果您真的想要,您可以拥有一个运行管理插件的命令行界面的脚本。这可以轮询队列,当它的大小超过一个时,可以启动一个程序来运行消费者从队列中消耗。
这些都没有任何意义。如果它只是坐着等待队列而没有做任何其他事情,它几乎不消耗任何资源,所以我不知道问题将是24/7全天候运行消费者。
当然,消费者不必全天候运行,这是MQ的一部分。它是异步的。当生产者写入队列时,消费者不必运行。因此,您可以有一个计划任务,定期运行您的使用者以检查和处理来自队列的消息。但我认为这不是你想要的。
倾听的全部意义是:在消息到来之前不做任何事,处理消息,在下一条消息之前什么也不做。这就是你想要问题的第一句话。为什么听的问题?