为了账号安全,请及时绑定邮箱和手机立即绑定

Rabbitmq 队列为空,尽管队列中有消息

Rabbitmq 队列为空,尽管队列中有消息

www说 2023-07-13 17:55:52
我正在从 Java Spring Boot 应用程序向消费者(即 Python 应用程序)发送消息。一切正常,除了当我输入命令时rabbitmqctl list_queues 它显示这video_queue 0意味着队列中没有消息。Consumer正在接收消息并进行一些漫长的过程;因此,如果我连续发送多条消息,应该有一些消息在队列中等待。我对吗?制作人:@Componentpublic class VideoProducer {    private Logger logger = LoggerFactory.getLogger(VideoProducer.class);    private final static String BROKER_EXCHANGE_NAME = "video_exchange";    private final static String ROUTING_KEY = "video_routing_key";    @Autowired    private RabbitTemplate rabbitTemplate;    @Autowired    private VideoService videoService;    @Autowired    private Gson gson;    public void produceVideo(VideoDTO video) {            rabbitTemplate.convertAndSend(BROKER_EXCHANGE_NAME, ROUTING_KEY, gson.toJson(video));        }    }}消费者connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))channelConsumer = connection.channel()# Video Consumer SettingschannelConsumer.exchange_declare(exchange='video_exchange',                                 exchange_type='direct')channelConsumer.queue_declare(queue="video_queue")channelConsumer.queue_bind(queue="video_queue",                           exchange="video_exchange",                           routing_key="video_routing_key")# Consumer Listenerdef callback(ch, method, properties, body):    video_dto = eval(json.loads(body))     ##Something long process here   print("Done..  ")    channelConsumer.basic_consume(queue='video_queue',                              auto_ack=True,                              on_message_callback=callback)print(' [*] Waiting for messages. To exit press CTRL+C')channelConsumer.start_consuming()在哪里可以看到我声明的队列上的消息?因为虽然我知道队列中有消息,但我无法使用上述命令看到它们。我也在使用 RabbitMQ 管理门户。
查看完整描述

2 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

您可以使用RMQ管理控制台查看RMQ的消息和其他信息。消费者可能会消费多个消息并将它们放入内部队列中。为避免这种情况,请将 QOS 设置为 1,并将 ack required 设置为 true。

查看完整回答
反对 回复 2023-07-13
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

您可以从访问 localhost:15672 的rabbitMQ 管理端口检查和管理队列,一旦任何接收者收到来自队列的消息,它将自动从队列中删除。因此,如果您想查看您的消息,您最好通过管理门户进行检查,一旦任何收件人收到这些消息,这些消息就会被删除。



查看完整回答
反对 回复 2023-07-13
  • 2 回答
  • 0 关注
  • 269 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信