So ändern Sie "cron-Ausdruck" in der CronTrigger (Quarz-2.2, spring 4.1)
Ich bin ein bisschen stecken die Migration auf die neueste Quarz-2.2 und spring 4.1... Hier ist ein cron-trigger, lasse ich die job und andere fluff für Klarheit:
...
<bean id="timeSyncTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="timeSyncJob"/>
<property name="startDelay" value="10000"/>
<property name="cronExpression" value="0 0 1 * * ? *"/>
</bean>
...
Nun, ich brauche zu ändern cronExpression zur Laufzeit, und es ist nicht so einfach wie ich dachte. Ich kann nicht Referenz die bean und die Eigenschaft ändern, da es eine Fabrik geben CronTrigger - Schnittstelle, die wiederum nicht setCronExpression Methode nicht mehr, es hat sich unveränderlich. Vorher konnte ich einfach Fische aus einem trigger aus dem Rahmen und legen Sie seine neue cron-Ausdruck. Es funktionierte sehr gut für viele Jahre, bis das upgrade unausweichlich.
Also, wie erreichen wir diese einfache Aufgabe heute? Völlig verloren in Dokumentationen und Versionen.. vielen Dank im Voraus!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wird die CronTriggerFactoryBean.setCronExpression() Methode arbeiten?
CronTriggerFactoryBean
scheint nicht bereit, für Sie die cronExpression. Es könnte gewollt sein, dass der CronTrigger-Schnittstelle hat nichtsetCronExpression
.CronTriggerImpl.setCronExpression
hat keinen Effekt, nicht wahr?Zusätzlich zu den
CronTriggerFactoryBean
Sie wahrscheinlich eineSchedulerFactoryBean
, die Ihnen den Zugang zu den Quartz scheduler sowie der CronTrigger. Der Quartz-scheduler ermöglicht Ihnen, zu verschieben, einen job mit einem neuen/geänderten trigger: