Переместить сообщение MSMQ из одной очереди в другую с помощью Powershell - PullRequest
1 голос
/ 01 апреля 2020

Мне интересно, возможно ли написать сценарий Powershell для перемещения сообщения из одной очереди MSMQ в другую?

У меня есть несколько сообщений о сбоях (т. Е. Сообщений, которые не были завершены, например, из-за их вызова, например, из-за сбоя сервера) в очереди ошибок, которую я хотел бы повторить, переместив их обратно в исходную очередь обработки. Я использую обработчики NServiceBus v6 для прослушивания сообщений, поступающих в исходную очередь обработки, которые отправят сообщение повторно, если они будут помещены обратно в эту очередь.

Кто-нибудь делал это до использования Powershell?

В частности, я хотел бы сделать следующее в Powershell:

  1. Найти сообщение на основе указанного c идентификатора (строки) в теле сообщения
  2. Переместить это сообщение в конкретная c очередь

Я знаю, что у Powershell есть такие команды, как Move-MsmqMessage . Мне не удалось найти в Интернете пример, который я мог бы повторно использовать для этой функции.

Любая помощь, высоко оцененная.

1 Ответ

2 голосов
/ 01 апреля 2020

Если у вас есть сообщения в очереди ошибок от NServiceBus, вы можете использовать этот инструмент, чтобы вернуть их в исходную очередь, в которой они находились.

https://github.com/ParticularLabs/MsmqReturnToSourceQueue

Он проверяет заголовки исходной очереди и отправляет их туда снова. Идея состоит в том, что любая конечная точка может отправлять сообщения в одну и ту же очередь ошибок. Затем они могут быть переварены ServiceControl или любым другим инструментом. Если вы оставите их в очереди ошибок, этот ReturnToSourceQueue может отправить их обратно в исходную очередь.

...