Возможно, это какая-то глупая ошибка, которую я упускаю, но вот проблема:
Я пытаюсь вставить простое «привет» сообщение в очередь Кролика с предопределенным ключом обмена и маршрутизации.
Это код, который я использую:
private static void send_equity_task_to_rabbitmq(ConnectionFactory factory) throws IOException,TimeoutException{
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare("b", false, false, false, null);
channel.exchangeDeclare("b", "direct");
channel.basicPublish("b","b",null, "hello".getBytes());
channel.close();
connection.close();
}
public static void main(String[] argv) throws TimeoutException,IOException {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("127.0.0.1");
Date start_time= Calendar.getInstance().getTime();
Long start_time_timestamp=System.currentTimeMillis();
System.out.println("[INFO] Starting connection to queue at:"+start_time);
send_equity_task_to_rabbitmq(factory);
Long end_time_timestamp=System.currentTimeMillis();
System.out.println("[INFO] Message sent and processed successfully after:"+ (end_time_timestamp-start_time_timestamp)+" miliseconds");
}
}
Код работает без ошибок. Однако, когда я проверяю количество записей в очереди "b", я получаю:
$ rabbitmqctl list_queues
Listing queues ...
b 0
...done.
В данный момент у меня нет потребителей для этой очереди, поэтому я предполагаю, что, поскольку в ней 0 записей, я плохо использую basicPublish.
Что может быть не так?
Спасибо.