gpt4 book ai didi

java - RabbitMQ:路由键+队列+延迟

转载 作者:行者123 更新时间:2023-11-30 03:35:38 25 4
gpt4 key购买 nike

我有一个制作人,如下:

public class MyProducer {

private static final String EXCHANGE_NAME = "messages";

public static void main(String[] argv)
throws java.io.IOException {

ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();

channel.exchangeDeclare(EXCHANGE_NAME, "direct");

String color1 = "red"
String message1 = "message1"

String color2 = "blue"
String message2 = "message2"

channel.basicPublish(EXCHANGE_NAME, color1, null, message1);
channel.basicPublish(EXCHANGE_NAME, color2, null, message2);

channel.close();
connection.close();
}
}

也是一个消费者:

public class MyConsumer {

private static final String EXCHANGE_NAME = "messages";

public static void main(String[] argv)
throws java.io.IOException,
java.lang.InterruptedException {

ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();

channel.exchangeDeclare(EXCHANGE_NAME, "direct");
String queueName = channel.queueDeclare().getQueue();


channel.queueBind(queueName, EXCHANGE_NAME, "color1");
channel.queueBind(queueName, EXCHANGE_NAME, "color2");


QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume(queueName, true, consumer);

}

}

我现在的问题是:

  1. 我现在只有一个名为“queuName”的队列还是有两个名为“color1”和“color2”的队列?
  2. 我不想立即使用这些消息。所以我想要的是为每个队列“color1”和“color2”设置延迟。我怎样才能实现这一目标?

最佳答案

问题 1)我现在只有一个名为“queuName”的队列还是有两个名为“color1”和“color2”的队列?

答案:你必须完成教程

https://www.rabbitmq.com/getstarted.html

根据您决定如何创建队列以及哪些交换类型[直接、主题、 header 和扇出]符合您的要求,或者有时不需要交换..所以首先查看教程,然后根据您的需求决定。

问题2)我不想立即使用消息。所以我想要的是为每个队列“color1”和“color2”设置延迟。我怎样才能实现这个目标?

回答:为此你必须编写自己的逻辑来延迟消费者从兔子那里找到消息,你也可以通过线程。

享受 Rabbit 编程:)

关于java - RabbitMQ:路由键+队列+延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27965859/

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