Контроль перед выполнением задания

Я всем, я работаю над проектом с н работой. я возьму один например: у меня есть файл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 и динамически управлять заданием? благодарю вас


person Michael Cauduro    schedule 09.01.2019    source источник
comment
Как часто вы собираетесь задавать один и тот же вопрос. Это как минимум третий раз, когда вы спрашиваете об этом за последнюю неделю. (И вы, вероятно, уже удалили некоторые вопросы, помеченные как повторяющиеся).   -  person M. Deinum    schedule 09.01.2019
comment
проблема отличается от поста, на который вы ссылались выше! я это уже видел и это не решение моей проблемы!   -  person Michael Cauduro    schedule 09.01.2019
comment
В чем отличие, вы хотите предотвратить одновременное выполнение задания.   -  person M. Deinum    schedule 09.01.2019
comment
потому что у меня нет класса реализации работы. если вы читаете, я новичок весной, и я действительно не знаю, как работает кварц в этом случае.   -  person Michael Cauduro    schedule 09.01.2019
comment
Да, у вас есть реализация задания... Как вы думаете, на что указывает параметр jobClass? Как я уже говорил в своем комментарии, ваш ImportJobDetail - это ваша фактическая реализация работы.   -  person M. Deinum    schedule 09.01.2019
comment
Я не знаю, как управлять, как пост выше   -  person Michael Cauduro    schedule 09.01.2019
comment
Итак, я должен поместить здесь аннотацию DisallowConcurrentExecution?   -  person Michael Cauduro    schedule 09.01.2019