【问题标题】:Where to keep intermediate results of a spring batch job?春季批处理作业的中间结果保存在哪里?
【发布时间】:2018-11-03 09:29:14
【问题描述】:

就上下文而言,我有一张表格,其中包含递送到不同递送国家/地区的包裹。我想查找过去 5 周内每个送货国家/地区每周(周日、周一、周三等)的平均包裹数。

我应该为此使用 Spring Batch。从我的角度来看,我可以批量获取包裹来进行计算。但是在处理完所有包裹之前,我无法写出最终结果。我在这里对批次使用了错误的概念吗?或者 Spring Batch 是否提供了一种保留中间结果的方法?

【问题讨论】:

  • 我没有您的问题的答案,但您可以使用的一种技术是暂存表。进行中间计算并将结果存储在临时表中。然后汇总这些表中的结果。最后一步将删除那些临时表以清理内容。附带说明一下,如果由我决定,我会编写一个 SQL 查询。

标签: java spring-boot spring-batch


【解决方案1】:

Spring 批处理只是触发代码执行。我会将结果写入一个明确的批处理数据库,其中包含与实际批处理运行相关的所有结果。这样,您就不会向生产数据库发送垃圾邮件,并且还可以保留结果以供进一步的文档/调试。如有必要,您可以在一段时间后将其删除。这样,如果该批处理数据库由于任何原因而崩溃,它不会干扰生产数据,并且您可以通过批处理运行对数据进行排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多