Мне нужно отправить свои сообщения в очередь недоставленных сообщений из подписки на тему Azure в случае возникновения какой-либо ошибки при чтении и обработке сообщения из темы. Поэтому я попробовал протестировать отправку сообщения прямо в DLQ.
Мой пример кода будет похож на
static void sendMessage()
{
// create a Service Bus Sender client for the queue
ServiceBusSenderClient senderClient = new ServiceBusClientBuilder()
.connectionString(connectionString)
.sender()
.topicName(topicName)
.buildClient();
// send one message to the topic
senderClient.sendMessage(new ServiceBusMessage("Hello, World!"));
}
static void resceiveAsync() {
ServiceBusReceiverAsyncClient receiver = new ServiceBusClientBuilder()
.connectionString(connectionString)
.receiver()
.topicName(topicName)
.subscriptionName(subName)
.buildAsyncClient();
// receive() operation continuously fetches messages until the subscription is disposed.
// The stream is infinite, and completes when the subscription or receiver is closed.
Disposable subscription = receiver.receiveMessages().subscribe(message -> {
System.out.printf("Id: %s%n", message.getMessageId());
System.out.printf("Contents: %s%n", message.getBody().toString());
}, error -> {
System.err.println("Error occurred while receiving messages: " + error);
}, () -> {
System.out.println("Finished receiving messages.");
});
// Continue application processing. When you are finished receiving messages, dispose of the subscription.
subscription.dispose();
// When you are done using the receiver, dispose of it.
receiver.close();
}
Я пытался получить путь к очереди недействительных писем
String dlq = EntityNameHelper.formatDeadLetterPath(topicName);
Я получил путь очереди недоставленных сообщений, например = mytopic / $ deadletterqueue
Но он не работает при передаче пути в качестве имени темы. Он выбрасывает исключение Entity topic not found.
Любой, пожалуйста, посоветуйте мне по этому поводу
Ссылка: Как переместить ошибку сообщение в очередь недоставленных сообщений Azure с помощью Java?
Как отправлять сообщения об ошибках в очередь мертвых писем служебной шины Azure в Spring Boot Java?