scheduler.getCurrentlyExecutingJobs () sollte in den meisten Fällen funktionieren. Aber denken Sie daran, es nicht in der Job-Klasse zu verwenden, denn es verwendet den ExecutingJobsManager (einen JobListener), um den laufenden Job in eine HashMap zu stellen, die vor der Jobklasse ausgeführt wird. Ein einfacher Ansatz besteht darin, zu überprüfen, ob die Feuerzeiten unterschiedlich sind:
%Vor%Beachten Sie auch, dass diese Methode nicht clusterfähig ist. Das heißt, es werden nur Jobs zurückgegeben, die gerade in dieser Scheduler-Instanz ausgeführt werden, nicht über den gesamten Cluster. Wenn Sie Quartz in einem Cluster ausführen, funktioniert es nicht richtig.
Wenn Sie in der Tabelle QUARTZ_TRIGGERS feststellen, gibt es eine Spalte TRIGGER_STATE. Dies zeigt Ihnen den Status des Triggers ( TriggerState ) für einen bestimmten Trigger Job. Aller Wahrscheinlichkeit nach hat Ihre App keine direkte Schnittstelle zu dieser Tabelle, aber der Quartz-Scheduler tut dies und Sie können den Status auf diese Weise überprüfen:
%Vor%Tags und Links java job-scheduling quartz-scheduler scheduler cron