不确定如何执行此操作,或者即使可以执行此操作。我需要编写一个侦听队列的函数,并在从中弹出某些东西时触发。
所以基本上: 将对象推送到队列 消费者从队列中弹出对象 **某些功能然后说,“'对象'已从队列中弹出”
这是可以用兔子做的事吗?
答案 0 :(得分:0)
我打算假设您要通知生产者消费者已从队列中消费了消息。我将补充一点,我认为你可能在这里误解了MQ概念,要么你需要使用RPC方法,这可以用RabbitMQ完成,或者你需要重新设计你的系统。但是你需要的是可能的。
我会在生产者的线程中使用循环:
`GetResponse gr = channel.basicGet(queueName, false);`
使用false,以便下一条消息不会从队列中弹出。 然后
`int msgCount = gr.getMessageCount();`
将为您提供队列中的消息数。 之后睡觉很短的时间,然后再次检查。如果生产者向队列发送大量消息,这将非常困难。但是,如果你增加发送到队列的消息总数并删除你知道已消耗的消息,这将告诉你并知道消息是否被消费。
我不是百分之百,这将是没有问题的,我会重申,我认为你的设计出现问题是通过尝试这个。
答案 1 :(得分:0)
在审查了我的计划之后,我意识到我采用了错误的方法。我正在让我的消费者向我的程序发回一条消息,说这条消息已被阅读。这遵循更多的队列概念。