21、Re Submitting Error Messages With EasyNetQ.Hosepipe 使用Hosepipe重新提交错误消息
EasyNetQ.Hosepipe是EasyNetQ队列管理工具。用来取回队列中的消息并重新发布这些消息。还可以用它来检测错误队列,并重试发布消息。
用法
EasyNetQ.Hosepipe.exe <command> [<option:value> ..]
Command命令
dump 转存队列中的所有消息到一个指定的目录中。 注意:这将为每一个消息创建三个文件: 消息体: <队列名>.n.message.txt 消息的基本属性: <队列名>.n.properties.txt 这个信息是需要重新发布的消息,包括交换机和路由的Key: <队列名>.n.info.txt insert 重新发布一个指定目录下的所有消息。 err 转存所有错误消息到一个指定的目录中。 retry 重试发布指定目录下的EasyNetQ的错误消息。 注意:这将会忽略*.properties.txt和*.info.txt文件,因为properties和info被包含在它自身的错误信息中。 ? 输出使用说明
选项
s 连接的RabbitMq代理名称(server)。默认值'localhost' v 虚拟主机。 默认值'/' u 用户名。默认值'guest' p 密码。默认值'guest' q 拿消息所在的队列名,或者发布消息的队列名。 o 输出消息的路径。默认值当前路径。 n 重新获取的消息最大个数。默认值1000.
示例
- 输出队列'my_queue'中的所有消息到txt文件,保存到路径'c:temp\message':
EasyNetQ.Hosepipe.exe dump s:localhost u:guest p:guest q:my_queue o:c:\temp\messages
- insert(重新发布)目录'c:\temp\messages'中所有消息到队列中
EasyNetQ.Hosepipe.exe insert s:localhost u:guest p:guest o:c:\temp\messages
- 转存localhost服务器中,EasyNetQ的全部消息到目录'c:\temp\message'中。
4.重新发布在目录'c:\temp\messages'中的全部错误信息。EasyNetQ.Hosepipe.exe err s:localhost o:C:\temp\messages
EasyNetQ.Hosepipe.exe retry s:localhost u:guest p:guest o:C:\temp\messages
注意事项
'dump'和'err'命令都不会删除队列中的消息。他们只是简单的从队列拿出消息,复制这些消息到指定目录中,会保留队列中原始消息。在重新发布这些错误消息要小心,你需要先删除这些错误队列中的消息(使用RabbitMQ管理界面)。因为如果不这样做,这些消息再次失败时,这些消息将会成为新的错误消息被发布到错误队列,这很可能导致创建重复的消息。
安装
当前Hosepipe只有源代码可用。你能在下面项目中找到。https://github.com/mikehadlow/EasyNetQ/tree/master/Source/EasyNetQ.Hosepipe
英文地址:https://github.com/EasyNetQ/EasyNetQ/wiki/Re-Submitting-Error-Messages-With-EasyNetQ.Hosepipe