使用NServiceBus的TPL数据流就像生命周期一样

时间:2014-06-09 05:03:53

标签: c# task-parallel-library message-queue nservicebus tpl-dataflow

刚刚使用what I posted earlier的快速沙盒版本。

最初的要求仍然有效 - 这在我的控制台沙盒verison中运行良好:

  • 读取(帐户ID)文件,CSV格式
  • 下载帐户数据 来自网络的每个帐户的文件(通过Id)(REST API)
  • 将文件传递给将生成报告的转换器(财务预测等) [~20ms]
  • 如果预测阈值在限制范围内,请运行解析器来分析数据[400ms]
  • 为上述分析生成报告[80ms]
  • 将生成的所有文件上传到网络(REST API)

我这次尝试使用NServiceBus,但我发现很难锻炼如何使事情适合。

我正在将大量的20个帐户ID推送到一条消息中,这是由NServiceBus Handler读取的,他们一次将其发布到BufferBlock。批量加载的原因是我们的系统使用非常慢的网络服务来获取帐户信息 - 特别是存档帐户(已故等),有时需要3-4秒! (暂时不要担心)

如何将内容弹出缓冲区并在读取消息时仍然激活我的TPL数据流?我是否单独配置TPL数据流并等待,只是在新批消息通过时发布?

大约有200万个帐户需要处理。理想情况下,我希望帐户报告生成器(TPL-DF)始终处于活动状态,我只是将消息推送到其将要处理的缓冲区。这让我感到困惑。

0 个答案:

没有答案