【问题标题】:How to handle very long running processes in NServiceBus如何在 NServiceBus 中处理运行时间很长的进程
【发布时间】:2015-01-22 05:35:05
【问题描述】:

我正在使用 NServiceBus 来处理一些异步任务。有时我有一个任务需要处理 10,000 条记录,所以这需要几个小时。

我的问题是,当我一起处理这些记录时,我无法使用 NServiceBus 默认事务处理。

另外 - 如果我将这些记录分成 10,000 条较小的消息,它们将阻塞 MSMQ 几个小时,而希望函数花费几分钟的用户将等待几个小时。

NServiceBus 中是否有办法区分不同消息的优先级?

【问题讨论】:

  • 通常应该避开消息优先级。而是使用优先级/后台队列。所以相同的代码但不同的端点。

标签: nservicebus


【解决方案1】:

我会考虑将其分解成更小的批次(不一定每条记录一条消息),并为此过程专门设置一个单独的端点服务,这样其他东西就不会被搁置。如果将其分成批次并且您关心它们何时完成,那么我建议使用 saga 来跟踪该状态。

【讨论】:

猜你喜欢
  • 2016-02-04
  • 1970-01-01
  • 2016-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多