我目前正在进行一个项目,我们将Rebus用作Oracle11g数据库的消息队列。使用了分叉项目,队列消息清理已中断。我正在寻找更多关于如何在一段时间后删除消息的文档(看看是否存在一些错误配置(。Rebus Oracle存储库中的链接https://mookid.dk/category/rebus不幸地摔坏了。可能还有其他地方存放文档吗?
我仍然没有找到任何关于Rebus Oracle项目的文档,但我遇到的问题已经解决了。队列中每条消息的默认生存时间值为100年。由于Oracle SQL Developer只显示一年中的最后两位数字,因此很容易误读查询以删除旧消息的过期列。要为每条消息设置不同的生存时间值,当消息发布到rebs总线时,应添加TimeToBeReceived标头:
await _bus.Publish(message, new Dictionary<string, string>
{
{ Headers.TimeToBeReceived,"10:00:00"} // hh:MM:ss format
});