我正在开发一个数据加载器应用程序,它使用平面文件读取数据并插入临时登台表。这是使用MultiResourcePartitioner(线程池10-11,队列151 )完成的步骤并行运行每个文件。有 15000 个文件,因此一旦首次一套150个文件资源完成, jobexecutiondecider 将再次运行另外150个文件同样,这种方式直到完成15000个文件。
下一步是将数据从登台表移动到主表,然后压缩文件并移动到另一个位置。在设计升级和归档步骤时,我要求您输入中等吞吐量,如果作业失败,则在下一次运行期间,即。在大约3个小时之后,它应该清除所有陈旧数据并将 COMPLETED 数据移动到主表。当我说 COMPLETED 时,表示已成功读取并插入完整的完整文件到临时表。只有这些数据被移动到主表。我们还有另一个表存储文件名,文件路径和完成状态,并在成功完成文件后更新,更新后的步骤方法。
注意:
我们不希望直接插入主表,因为该表具有物化视图,因此删除主表中的陈旧数据将影响查看报告的业务用户,有一次他们看到记录,下次记录消失因为工作每小时运行并清理不成功的数据。
我目前的方法是运行与多源分区步骤并行的分段步骤,并且具有固定延迟为2分钟的预定任务执行程序,tasklet bean轮询登台表,移动已处理标志Y的数据并从分段表中删除,还监视分区程序步骤,无论是运行还是停止。如果正在运行tasklet将返回RepeatStatus.CONTINUE,如果分区步骤完成,则完成RepeatStatus.FINISHED。当作业重新开始时,最后一步将归档文件 ,如果某个存档文件没有完成,这是从另一个存储文件名等的表中知道的,列is_archived是Y未存档,A archived.let我知道你的意见。