MassTransit-在路由清单上优先处理RabbitMQ消息

问题描述

RabbitMQ支持消息优先级:https://www.rabbitmq.com/priority.html

Masstransit允许用户在配置端点以及发送/发布消息时进行设置。

问题:在Masstransit中使用路由清单时,是否可以设置消息优先级?

我的问题:我们有一个屏幕,可以安排项目或立即处理它们。如果已计划,则可以分批处理项目。如果同时处理数百个项目,则在屏幕上保存一条记录可能要花几分钟,因为该消息将到达队列的末尾,这可能会导致不良的用户体验。

因此,如果无法设置优先级,那么这里还有什么选择呢?

谢谢!

解决方法

您最简单的选择?设置活动服务,以便它们承载两个端点,一个端点用于执行(任何内容,包括批处理),另一个端点用于执行交互式,在交互式请求时使用。构建路由清单时,使用适当的队列执行活动,然后就可以开始运行了。批处理不会干扰,因为它位于一组单独的端点上。

您的其他选择要困难得多,并且涉及创建发送中间件,该中间件查找RoutingSlip并检查一些值并设置优先级。