【发布时间】:2014-03-19 18:32:18
【问题描述】:
我有一个使用 spring 任务调度和批处理作业的 java 应用程序。我依靠job 中的MultiResourceItemReader 从目录中读取一些文件,处理它们,然后删除这些文件。外部进程负责定期将新文件放入该目录中。但问题是,每次job 运行时,它都会尝试读取启动应用程序时存在的相同文件资源,因此失败,因为这些资源已经消失而新文件现在在那里。
问题是,我如何配置应用程序,以便为给定job 的每次计划执行评估资源属性。
相关bean粘贴如下:
<bean id="multiResourceReader" class="org.springframework.batch.item.file.MultiResourceItemReader">
<property name="resources" value="file:/opt/data/*.csv" />
<property name="delegate" ref="testFlatFileItemReader" />
</bean>
<batch:job id="MyJob">
<batch:step id="readandstore">
<batch:tasklet>
<batch:chunk reader="multiResourceReader" writer="oracleItemWriter" commit-interval="10" />
</batch:tasklet>
</batch:step>
</batch:job>
<bean id="runScheduler" class="com.myapp.Scheduler">
<property name="jobLauncher" ref="jobLauncher" />
<property name="job" ref="MyJob" />
</bean>
<task:scheduled-tasks>
<task:scheduled ref="runScheduler" method="run" cron="*/30 * * * * *" />
</task:scheduled-tasks>
【问题讨论】:
标签: java spring scheduled-tasks task