使用Powershell将MSMQ消息从一个队列移至另一队列

时间:2020-04-01 07:03:46

标签: powershell nservicebus msmq

我想知道是否有可能编写Powershell脚本来将消息从一个MSMQ队列移动到另一个?

我在错误队列中有一些失败的消息(例如,由于涉及到对已关闭的服务器的调用而未能完成的消息),我想通过将它们移回它们的路径来重试。原始处理队列。我正在使用NServiceBus v6处理程序来侦听进入原始处理队列的消息,如果将这些消息放回到该队列中,它们将重新发送该消息。

在使用Powershell之前有人进行过此操作吗?

尤其是,我想在Powershell中执行以下操作:

  1. 根据邮件正文中的特定标识符(字符串)查找邮件
  2. 将此消息移到特定队列

我知道Powershell具有诸如Move-MsmqMessage之类的命令。我一直无法在线找到可用于此功能的示例。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

如果来自NServiceBus的错误队列中有消息,则可以使用此工具将它们返回到它们所在的原始队列中。

https://github.com/ParticularLabs/MsmqReturnToSourceQueue

它检查标头是原始队列是什么,然后将其再次发送到那里。这个想法是,任何端点都可以将消息发送到同一错误队列。然后可以使用ServiceControl或任何其他工具来消化它们。如果您将它们留在错误队列中,则此ReturnToSourceQueue可以将它们发送回原始队列。