gpt4 book ai didi

java - 任务完成时如何获取 RabbitMQ 消息?

转载 作者:行者123 更新时间:2023-12-01 12:12:32 25 4
gpt4 key购买 nike

我在 Java 上使用 RabbitMQ(和 Celery),这是我的代码,用于根据 tutorial 从 RabbitMQ 获取消息。我正在阅读:

QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume(QUEUE_NAME, true, consumer);
while (true) {
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
System.out.println(" [x] Received '" + message + "'");
}

但我只在任务开始时收到消息 - 当我想在任务完成时收到消息时。有什么帮助吗?

最佳答案

您不应该使用 QueueingConsumer,因为它被视为已弃用,如下所述:https://www.rabbitmq.com/releases/rabbitmq-java-client/current-javadoc/com/rabbitmq/client/QueueingConsumer.html

相反,您应该创建自己的使用者来实现 RabbitMQ 库中的接口(interface) Consumer。您必须实现一个名为 handleDelivery 的方法,每次收到消息时都会调用该方法。然后,要启动它,您需要调用 channel.basicConsume(QUEUE_NAME, true, Consumer)

示例:

channel.basicConsume(queueName, autoAck, "myConsumerTag", new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag,
Envelope envelope,
AMQP.BasicProperties properties,
byte[] body) throws IOException
{
//your code here
}
});

关于java - 任务完成时如何获取 RabbitMQ 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27195360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com