问题
用户可以提交数据以生成报告,从而触发弹出批处理作业。如果提交相同的数据(由同一用户或其他用户提交),则应生成相同的报告,以便Spring Batch不会在已生成报告的前提下开始新的工作。
为了使事情变得更复杂,生成的报告在90天后过期。这背后的想法是,用于构建报告的各种Web服务收集的数据可能已过时。因此,90天后,应使用这些Web服务中的新数据重新生成报告。
问题
当作业已经运行时,如何找到该作业的作业执行ID?此ID在URL中用于唯一标识报告。 JobExplorer
在查询Spring Batch数据时受到严重限制。
如何在90天后触发另一个作业实例?问题是,给定重复的作业参数,将抛出JobInstanceAlreadyCompleteException
。我必须编码90天有额外的识别参数,还是有更简单的方法?
答案 0 :(得分:1)
必须使用业务方法和过期报告来清理旧作业 在此前提下,您可以尝试不同的路径来解决您的问题:
当然,生成的报告元数据表与SB表不同,应使用与域上下文相关的DAO(在您的情况下为报告)进行访问。
这可以作为有效的替代方案吗?