我对每个人来说,我正在从事一个有n个工作的项目。我举一个例子: 我有一个带有以下属性的quartz-context.xml文件:
<bean id="jobImportFi01QuartzTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="group" value="XXX" />
<property name="jobDetail" ref="jobImportFi01Quartz" />
<property name="cronExpression" value="${jobImportFi01.cron.expression}" />
<property name="misfireInstructionName"
value="MISFIRE_INSTRUCTION_DO_NOTHING" />
</bean>
<bean id="jobImportFi01Quartz"
class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="group" value="XXX" />
<property name="jobClass"
value="com.batch.job.import.quartz.ImportJobDetail" />
<property name="description" value="Fi01Import" />
<property name="jobDataAsMap">
<map>
<entry key="jobName" value="jobImportFi01" />
</map>
</property>
</bean>
和ImportJobDetail类是:
public class ImportJobDetail extends AbstractJobDetail {
@Override
protected JobParameters setupJobParameters(JobParameters jobParameters, JobExecutionContext context,
String jobName) {
JobParametersBuilder builder = new JobParametersBuilder(jobParameters);
builder.addString(ConfigManager.PARAM_MODE, ConfigManager.MODE_PERSIST);
return builder.toJobParameters();
}
}
我是春季和夸脱新手,我想在将作业详细记录保存到db之前检查作业是否已在运行。 问题在于,首先在db中保存一个包含作业执行详细信息的记录(开始时间-结束时间ecc),然后存在一个controll,如果该作业已经在运行,则将记录中的状态值设置为'FAILED'并停止执行。但是我想在将记录存储在db中之前进行控制,因为如果我有每5秒运行一次的工作,例如一次需要1个小时,那么我在db中会发现很多记录设置为FAILED且一个记录设置为COMPLETED(该工作首先运行)。我必须使用SchedulerFactoryBean并动态管理作业? 谢谢