MassTransit - 在路由单上优先考虑 RabbitMQ 消息
MassTransit - Prioritize RabbitMQ Message on Routing Slip
RabbitMQ支持的消息优先级:https://www.rabbitmq.com/priority.html
MassTransit 允许用户在配置端点和 sending/publishing 一条消息时进行设置。
问题:在 MassTransit 中使用 Routing Slip 时是否可以设置消息优先级?
我的问题:我们有一个屏幕可以安排项目或立即处理它们。如果计划,项目可以分批处理。如果同时处理数百个项目,在屏幕上保存一条记录可能需要几分钟,因为消息会排到队列末尾,这可能会导致糟糕的用户体验。
那么,如果无法设置优先级,这里有什么替代方法?
谢谢!
你最简单的选择?设置您的 activity 服务,以便它们托管两个端点,一个用于执行(任何内容,包括批处理),一个用于 execute-interactive,您在它是交互式请求时使用。当您构建传送名单时,为 activity 执行使用适当的队列,然后您就可以 运行 了。批处理不会干扰,因为它位于一组单独的端点上。
Your other option is a lot harder, and would involve creating send middleware that looks for RoutingSlip and checks some value and sets the priority.
RabbitMQ支持的消息优先级:https://www.rabbitmq.com/priority.html
MassTransit 允许用户在配置端点和 sending/publishing 一条消息时进行设置。
问题:在 MassTransit 中使用 Routing Slip 时是否可以设置消息优先级?
我的问题:我们有一个屏幕可以安排项目或立即处理它们。如果计划,项目可以分批处理。如果同时处理数百个项目,在屏幕上保存一条记录可能需要几分钟,因为消息会排到队列末尾,这可能会导致糟糕的用户体验。
那么,如果无法设置优先级,这里有什么替代方法?
谢谢!
你最简单的选择?设置您的 activity 服务,以便它们托管两个端点,一个用于执行(任何内容,包括批处理),一个用于 execute-interactive,您在它是交互式请求时使用。当您构建传送名单时,为 activity 执行使用适当的队列,然后您就可以 运行 了。批处理不会干扰,因为它位于一组单独的端点上。
Your other option is a lot harder, and would involve creating send middleware that looks for RoutingSlip and checks some value and sets the priority.