首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rebus 2-手动重试

Rebus 2-手动重试
EN

Stack Overflow用户
提问于 2016-01-11 21:03:51
回答 1查看 173关注 0票数 1

使用rebus2进行手动重试有什么“最佳实践”吗?

我有一个自定义的Web用户界面用于‘错误监控’,我希望能够从Web用户界面手动重试错误。问题是错误队列似乎总是“错误”的,所以它不包含原始队列的信息。

我们使用SQL Server作为Rebus消息的存储。

EN

回答 1

Stack Overflow用户

发布于 2016-01-11 21:18:32

您可以解码失败消息的标头- rbs2-source-queue将设置为传递失败的队列的名称。

标头作为utf8编码的headers存储在messages表的JSON列中-您可以通过下面的命令检查它

代码语言:javascript
复制
SELECT TOP 10 CAST([headers] AS VARCHAR(MAX)) FROM [messages]

(这可能并不总是100%正确,因为SQL Server中没有真正的UTF8操作,但在大多数情况下,它应该可以很好地显示标头)

当您在C#中时,当您在messages表上的查询结果上打开一个datareader时,很容易做到这一点:

代码语言:javascript
复制
while(reader.Read())
{
    var bytesFromHeadersColumn = (byte[])reader["headers"];
    var jsonText = Encoding.UTF8.GetString(bytesFromHeadersColumn);

    // use a JSON serializer to parse jsonText here...
}

这使得从失败消息的报头中提取源队列信息变得相当容易。

我希望这是有意义的:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34722276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档