我想知道是否可以编写一个 Powershell 脚本来将消息从一个 MSMQ 队列移动到另一个队列?
我在错误队列中有一些失败的消息(即未完成的消息,例如,因为它们涉及对已关闭的服务器的调用),我想通过将它们移回到它们的位置来重试原始处理队列。我正在使用 NServiceBus v6 处理程序来监听进入原始处理队列的消息,如果将消息放回到该队列中,该消息将重新发送。
有人在使用 Powershell 之前这样做过吗?
特别是,我想在 Powershell 中执行以下操作:
- 根据消息正文中的特定标识符(字符串)查找消息
- 将此消息移至特定队列
我知道 Powershell 有诸如 Move-MsmqMessage 之类的命令。我无法在网上找到可以重复使用此功能的示例。
非常感谢任何帮助。
最佳答案
如果错误队列中有来自 NServiceBus 的消息,您可以使用此工具将它们返回到它们所在的原始队列。
https://github.com/ParticularLabs/MsmqReturnToSourceQueue
它检查原始队列的 header 并将其再次发送到那里。这个想法是任何端点都可以将消息发送到同一个错误队列。然后它们可以被 ServiceControl 消化或任何其他工具。如果您将它们留在错误队列中,此 ReturnToSourceQueue
可以将它们发送回原始队列。
关于powershell - 使用 Powershell 将 MSMQ 消息从一个队列移动到另一个队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60965271/