Spring Batch - 处理巨大文件中的行,为每行开始新工作

时间:2015-07-22 08:41:45

标签: java spring spring-batch

除了这个问题: Spring Batch - where does the process run

每隔一小时我就会收到一份包含一组服务的使用数据的大文件。 Usage数据行包含UserId和ServiceId以及服务的使用时间/长度。

对于每个使用数据,我需要检查用户拥有哪个订阅,以及每个服务的费用。此特定订阅的单位。这将导致我可以向用户收费的行。

对于每一行:

  1. 数据库:按用户查找订阅
  2. 数据库:按订阅查找服务费用
  3. 任务:计算价格
  4. 数据库:写帐单行
  5. 重要的是要注意,订阅并不总是具有特定服务的成本。因此,每一行都可能失败,直到用户为给定的订阅和服务添加成本。

    每一行都有很多逻辑,每一行都可能失败,需要重新运行。

    我一直在考虑将所有UserSubscriptions,Subscriptions和SubscriptionServiceCost提取到内存中然后通过这些进行迭代,因此我只会在流程的开头进行选择。而不是必须为每一行做一个选择。此外,我可以在流程结束时批量插入结算行。

    如何使用Spring Batch在我的设计中找到正确的路径?

0 个答案:

没有答案