Я всем, я работаю над проектом с н работой. я возьму один например: у меня есть файлquart-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();
}
}
Я новичок в spring и quart, и я хочу проверить, выполняется ли уже задание, прежде чем сохранять запись сведений о задании в БД. Проблема в том, что сначала в db сохраняется запись с деталями выполнения задания (время начала-время окончания ecc), а после того, как есть контроль, если задание уже запущено, установите значение состояния записи в «FAILED» и остановите выполнение. но я хочу выполнить контроль перед сохранением записи в БД, потому что если у меня есть задание, которое выполняется каждые 5 секунд, и один раз, например, это занимает 1 час, я нахожу в БД много записей, для которых установлено значение FAILED, а одно - COMPLETED ( задание было запущено впервые). я должен использовать SchedulerFactoryBean и динамически управлять заданием? благодарю вас
@DisallowConcurrentExecution
к вашему классуImportJobDetail
(который на самом деле являетсяJob
, а неJobDetail
). - person M. Deinum   schedule 09.01.2019jobClass
? Как я уже говорил в своем комментарии, вашImportJobDetail
- это ваша фактическая реализация работы. - person M. Deinum   schedule 09.01.2019