Uso il quarzo con Spring per eseguire un'attività specifica a mezzanotte del primo giorno del mese. Ho testato il lavoro impostando la data del server & in modo che sia 11:59 l'ultimo giorno del mese, avviando il server e osservando l'esecuzione dell'attività quando si passa alle 12:00, ma sono preoccupato per i casi in cui il il server (per qualsiasi motivo) potrebbe non essere in esecuzione a mezzanotte del primo del mese.Esecuzione di un lavoro al quarzo mancante
Avevo dato per scontato che la gestione dei malfunzionamenti in Quartz avrebbe avuto importanza per questo, ma forse mi sbaglio su questo?
Qualcuno mi può consigliare su come potrei essere in grado di gestirlo? Preferirei davvero non creare un lavoro che esegua "x" secondi/minuti/ore e verificare se ho bisogno di eseguire il lavoro se posso evitarlo.
Sono anche curioso di sapere perché non vedo alcuna informazione di registrazione relativa al quarzo, ma questo è un problema secondario.
Ecco la mia configurazione a molla per l'attività:
<bean id="schedulerService" class="com.bah.pams.service.scheduler.SchedulerService">
<property name="surveyResponseDao" ref="surveyResponseDao"/>
<property name="organizationDao" ref="organizationDao"/>
</bean>
<bean name="createSurveyResponsesJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.bah.pams.service.scheduler.jobs.CreateSurveyResponsesJob"/>
<property name="jobDataAsMap">
<map>
<entry key="schedulerService" value-ref="schedulerService"/>
</map>
</property>
</bean>
<!-- Cron Trigger -->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="createSurveyResponsesJob"/>
<property name="cronExpression" value="0 0 0 1 * ? *"/>
<!--if the server is down at midnight on 1st of month, run this job as soon as it starts up next -->
<property name="misfireInstructionName" value="MISFIRE_INSTRUCTION_FIRE_ONCE_NOW"/>
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="autoStartup" value="true"/>
<property name="quartzProperties">
<props>
<prop key="org.quartz.jobStore.class">org.quartz.simpl.RAMJobStore</prop>
<prop key="org.quartz.jobStore.misfireThreshold">60000</prop>
</props>
</property>
<property name="jobDetails">
<list>
<ref bean="createSurveyResponsesJob"/>
</list>
</property>
<property name="triggers">
<list>
<ref bean="cronTrigger"/>
</list>
</property>
</bean>