【问题标题】:WSO2 ESB 6.1.0 Batch ProcessingWSO2 ESB 6.1.0 批处理
【发布时间】:2018-07-19 13:12:27
【问题描述】:

我需要使用 WSO2 ESB 处理 MS SQL 数据库中的 1000 万条记录。

输入文件可以是 XML 或平面文件。 我创建了 WSO2 ESB 中提供的数据服务。

现在,我开始从 XML 读取并插入 MS SQL 数据库的过程,我想在处理期间通过 ESB 提交每 5000 条记录,这样如果 5001 记录失败,我可以从 5001 记录而不是 0 重新开始处理。

第一个问题,所有记录同时提交。我想以这样的方式配置它,它应该处理 5000 条记录,在 DB 中提交,然后继续处理下一组记录。另外,如果批处理作业在处理 10000 条记录后失败,我希望批处理作业从 100001 条记录开始处理,而不是从 0 开始处理

请提出想法。

谢谢, 阿布舍克

【问题讨论】:

  • 到目前为止你尝试过什么?您在哪里遇到问题?
  • 第一个问题,所有记录同时提交。我想以这样的方式配置它,它应该处理 5000 条记录,在 DB 中提交,然后继续处理下一组记录。此外,如果批处理作业在处理 10000 条记录后失败,我希望批处理作业从 100001 条记录开始处理,而不是从 0 开始。

标签: wso2 wso2esb wso2-am wso2carbon wso2dss


【解决方案1】:

这是一种或多或少常见的模式。创建一个从 ipc 缓冲区(内存或文件)连续读取的代理/进程。 ESB 端点只是简单地写入缓冲区。 如果最终无法提交,代理负责重试和/或异步通知。

【讨论】:

    【解决方案2】:

    您可以做的是您可以在文件中写入开始和结束记录并将其放置在 ESB 中,当计划开始时,它将从文件中选择记录,在您的情况下为 5000,然后在 DSS 中处理它,现在如果是 DSS响应成功然后您在这种情况下增加文件中的记录和更新 10000,现在如果 DSS 响应不成功,那么文件中将提到 10000,在您找到失败的根本原因并修复它然后运行之后计划那么它将从 10000 开始记录,如果成功则将 15000 写入文件中,这样会一直持续到不满足结束条件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多