我有一个Quartz cron作业,它在一天中的某个特定时间(例如凌晨3点)启动并且运行良好,调用其项目阅读器和项目编写器。 问题是,它多次调用其项目阅读器。 现在,我刚刚在阅读器中留下了一面旗帜来阻止它。有没有更好的方法来做到这一点。
commit-interval = 60是一个问题吗?作为号码。读者必须阅读的记录是10。据说,读者读取这10个项目,并且作者将其写入DB。现在再次调用读者,这是一个问题。作业xml如下:
<batch:job id="AAA_job">
<batch:step id="step1">
<batch:tasklet>
<batch:chunk reader="XReader" writer="XWriter" commit-interval="60">
</batch:chunk>
</batch:tasklet>
</batch:step>
</batch:job>
<bean id="XReader"
class="com.X.store.batch.X.jobs.XXReader"
scope="step">
<property name="AName" value="${AAA}"></property>
<property name="bu" ref="bu" />
</bean>
<bean id="XWriter" class="com.X.store.batch.X.jobs.XXWriter" scope="step" >
<constructor-arg ref="xDS" />
<property name="SSU" value="${ssu}" />
</bean>
答案 0 :(得分:0)
我可能理解这个问题。实际上,作为一个cron作业的Quartz从一个表读取数据然后在DB中写入另一个表。因此,在任何时候它都不了解它需要多长时间才能继续读取数据,因为要读取的数据始终可用。如果要消耗的数据第二次无法使用,它将很有效。