MassTransit MessageData管理

问题描述

我已经开始更多地利用masstransit的消息数据功能,并且需要管理商店中的消息数据-即删除旧数据。

显而易见的选择是让一些外部进程整理数据,但是显然,计划的(或不计划的)清理可能会删除仍在使用中的数据或被错误或死信队列引用的数据。

理想情况下,我想将存储的消息数据保留范围限制为仅在错误或死信队列中的消息,并自动删除已成功处理的消息的数据。

使用Masstransit实现此目标的最佳方法是什么?也许使用MiddleWare方法或类似方法,如果是这种情况,正确的方法是什么?

解决方法

建议使用适用于所使用存储库的任何方式进行手动清理。正如您所指出的那样,由于消息可能仍在队列中,或者在错误/死信队列中,因此,真正应该由开发/操作团队知道何时才是删除旧消息数据的合适时间。

我建议更积极地监视和管理错误/死信队列,使它们保持空白。然后,只需确定一个好时限即可删除旧消息数据-一周,十天,无论如何-并以这种方式进行处理。

我有一个待办事项,可以提供一种自动管理消息数据的方法,但是由于可以通过发布或发送来转发消息数据(使用相同的存储数据),因此没有很好的方法来跟踪引用。