powershell - 使用 Powershell 将 MSMQ 消息从一个队列移动到另一个队列

标签 powershell nservicebus msmq

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

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

有人在使用 Powershell 之前这样做过吗?

特别是,我想在 Powershell 中执行以下操作:

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

我知道 Powershell 有诸如 Move-MsmqMessage 之类的命令。我无法在网上找到可以重复使用此功能的示例。

非常感谢任何帮助。

最佳答案

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

https://github.com/ParticularLabs/MsmqReturnToSourceQueue

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

关于powershell - 使用 Powershell 将 MSMQ 消息从一个队列移动到另一个队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60965271/

相关文章:

azure - 备份 Azure 数据库时如何备份事务日志?

deployment - NServiceBus 每消息一个分发器类型最佳实践背后的原因是什么?

c# - 微软消息队列和资源发布最佳实践

c# - 如何在不锁定队列的情况下通过 NServiceBus 发送大量消息?

messaging - 当我使用 NServiceBus 订阅消息时会发生什么?

.net - 到 MSMQ 还是不到 MSMQ? (或 SQL 表作为队列)

WCF net.msmq 服务自动激活

powershell - 使用 `pester` 测试 `pester` 版本

System.Net.WebException 的 Powershell 处理

powershell - 使用括号调用函数时 Powershell 中的参数合并