1

我们有一个大而复杂的文件,需要很长时间才能反汇编(比如一个小时)。如果我们可以在消息离开接收管道时分拆消息并在文件完成之前立即开始他们的行程,那将是很棒的。我可以说这并不容易,但有可能吗?

4

1 回答 1

7

不是开箱即用。管道反汇编是事务性的,因此,如您所见,整个交换被分批并立​​即提交给 MessageBox。

以下是一些选项:

  1. 如果您收到一个平面文件,其中每行都是一条消息,请使用 SSIS 将其加载到表中,然后使用 SQL 适配器,通过一次轮询约 10 条来排出消息。
  2. 如果您正在接收复杂的平面文件或 Xml,您可以将 XmlDasm 或 FFDasm 包装在自定义反汇编程序组件中,但不是将分批的消息返回到 MessageBox,而是将它们推送到其他地方。A)如果不需要订单,文件系统很容易。B) MSMQ 将保持消息在文件中出现的顺序。

我已经使用了这两种方法,其中传入的文件有 100k 到 400k 条记录,并且它确实提供了更易于管理的性能配置文件。

于 2014-01-21T21:48:48.620 回答