【问题标题】:Importing data using NService Bus使用 NServiceBus 导入数据
【发布时间】:2011-06-28 08:58:12
【问题描述】:

使用 NService 总线。 2.00.19(使用 MSMQ 和 SQL 2008)

我们想将数据导入我们的系统。
这些文件可能非常大,所以我们有后台处理器,它将从总线读取消息。这可能需要一个小时来处理。

其他人有这样做过吗?传奇是最好的前进方式吗?

【问题讨论】:

  • 消息中有数据吗?如果是这样,在 3.0 中实现数据总线之前,您将遇到限制。
  • 消息中没有数据。它保存一个文件位置。然后处理程序获取文件 (xml) 并更新数据库。

标签: import nservicebus cqrs saga


【解决方案1】:

如果只是一条消息,那么您可能不需要 saga。话虽如此,您可能会发现让读取文件的端点发送多条消息很有用,每条消息都包含一个“行”,然后您可能会发现 saga 用于跟踪进度。

【讨论】:

  • 感谢您的回答。我们确实开始走这条路,但导入需要是原子的。我们不希望某些“行”命令成功而另一些失败。
  • 这个非常大的文件的导入无论如何都是原子的,这将是相当困难的。我仍然会使用单独的行命令,因为您可以通过这种方式从并行处理中获得很多好处。然后,您使用错误队列来处理任何失败的行。为了从整个文件中获得更一般的原子性,您可以逐行导入临时表,使用 saga 跟踪成功完成的行数,当所有行都完成后,执行 SQL MERGE 或直接表重命名。
猜你喜欢
  • 2017-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-12
相关资源
最近更新 更多