2013-05-22 2 views
6

Ich habe den Quartz-Scheduler mit Spring als Teil meiner Anwendung, die in einer Clusterumgebung bereitgestellt wird. Das Problem besteht darin, dass Quartz viele Anfragen abfeuert (Hunderte pro Minute), obwohl meine Jobs einmal pro Stunde ausgeführt werden sollen (die Jobs werden korrekt ausgelöst). Gibt es eine Möglichkeit, diese Quartz-Abfragen zu vermeiden/zu verzögern?Wie Sie Abfragen beschränken, die von Quartz-Scheduler ausgelöst werden

EDIT: Hinzufügen einiger gefeuerten Anfragen von Quartz

UPDATE QRTZ_TRIGGERS SET TRIGGER_STATE = 'ACQUIRED' WHERE SCHED_NAME = 'SW_QUARTZ_SCHEDULER' AND TRIGGER_NAME = 'createCronTriggerFactoryBeanForPSDJob' AND TRIGGER_GROUP = 'SPRING3-QUARTZ' AND TRIGGER_STATE = 'WAITING' 

INSERT INTO QRTZ_FIRED_TRIGGERS (SCHED_NAME, ENTRY_ID, TRIGGER_NAME, TRIGGER_GROUP, INSTANCE_NAME, FIRED_TIME, STATE, JOB_NAME, JOB_GROUP, IS_NONCONCURRENT, REQUESTS_RECOVERY, PRIORITY) VALUES('SW_QUARTZ_SCHEDULER', 'sw-jayz-5413692078375651369207837517', 'createCronTriggerFactoryBeanForPSDJob', 'SPRING3-QUARTZ', 'sw-jayz-541369207837565', 1369207800000, 'ACQUIRED', NULL, NULL, 0, 0, 0) 

SELECT * FROM QRTZ_JOB_DETAILS WHERE SCHED_NAME = 'SW_QUARTZ_SCHEDULER' AND JOB_NAME = 'createJobDetailFactoryBeanForPSDJob' AND JOB_GROUP = 'SPRING3-QUARTZ 
DELETE FROM QRTZ_SIMPLE_TRIGGERS WHERE SCHED_NAME = 'SW_QUARTZ_SCHEDULER' AND TRIGGER_NAME = 'createCronTriggerFactoryBeanForQMRJob' AND TRIGGER_GROUP = 'SPRING3-QUARTZ' 
+0

Können Sie genauer sein? Welche Art von Abfragen sind das? –

Antwort

3

Ich glaube, Sie suchen org.quartz.scheduler.idleWaitTime, die standardmäßig auf die Datenbank schlägt alle 30 Sekunden für neue Abfragen zu suchen, wenn der Zeitplan hat nichts Besseres zu tun . (Documentation link)