Spring batch Spring批处理暂停,然后继续
我正在编写一个作业,它将从excel文件中读取x行数,然后我希望它暂停一个小时,然后继续执行下一个x行数。 我该怎么做 我有一个job.xml文件,其中包含以下内容。subscriptionDiscoverer获取文件并将其传递给处理器。处理器完成后,subscriptionWriter应写入另一个文件Spring batch Spring批处理暂停,然后继续,spring-batch,Spring Batch,我正在编写一个作业,它将从excel文件中读取x行数,然后我希望它暂停一个小时,然后继续执行下一个x行数。 我该怎么做 我有一个job.xml文件,其中包含以下内容。subscriptionDiscoverer获取文件并将其传递给处理器。处理器完成后,subscriptionWriter应写入另一个文件 <job id="subscriptionJob" xmlns="http://www.springframework.org/schema/batch" incrementer="job
<job id="subscriptionJob" xmlns="http://www.springframework.org/schema/batch" incrementer="jobParamsIncrementer">
<validator ref="jobParamsValidator"/>
<step id="readFile">
<tasklet>
<chunk reader="subscriptionDiscoverer" processor="subscriptionProcessor" writer="subscriptionWriter" commit-interval="1" />
</tasklet>
</step>
</job>
是否有某种计时器可以使用,或者是某种流结构?这是一个大约160000行的大文件,需要处理
我希望有人有他们想分享的解决方案。
谢谢大家! 我想从两种可能的方法开始:
为了理解这个问题,您需要处理预定义数量的记录(x),等待预定义的时间(y),然后处理下一块x,然后重复?是!重复此操作,直到文件结束。我不太擅长这个,但也许我可以添加一个暂停y分钟的步骤,然后重复readFile步骤?那么,如何计算文件中的最后一个位置?我只是不知道该怎么做?我创建了一个文件发现程序,一个从文件中读取信息的处理器和一个从第一个文件中写入信息的写入程序。我想我做错了。因为处理器从文件中读取2行,而写入程序只写入最后一行。。。所以我想我需要一个真正的读卡器,读一行,把它发送给处理器,处理器处理它,把它发送给写卡器?我仍然需要有关暂停和恢复步骤的帮助,我仍然不知道如何执行此操作。选项2可能导致事务超时,因为在事务中为ChunkThank@MichaelPralow调用BeforeCunk之前。您是对的,因为beforeChunk的javadoc表明“在执行块之前回调,但在事务内部。”我编辑了我的答案,将其替换为afterChunk