2011-02-11 4 views
1

J'écris une sorte de démarrage - pause - reprise - pause - reprise - (à intervalles réguliers) type de travail dans Quartz. J'utilise un SimpleTrigger pour l'expérimentation initiale.Findout pendant combien de temps un travail a été exécuté dans Quartz

Je voudrais savoir comment je peux trouver l'heure à laquelle un travail a été exécuté. J'ai regardé la classe Scheduler et il n'y avait pas de méthodes directement pour le trouver. Est-ce que quelqu'un pourrait me suggérer un moyen de trouver combien de temps un travail a été en cours d'exécution?

Merci, Abi

Répondre

0

scheduler.getCurrentlyExecutingJobs d'appel() pour obtenir l'ensemble de son travail en cours d'exécution (ou plus précisément pour obtenir le JobExecutionContext de chaque).

Ensuite, vous pouvez appeler getFireTime() sur JobExecutionContext pour voir à quelle heure l'exécution a démarré.

+0

En supposant qu'un travail s'exécute à chaque intervalle de 10 minutes et qu'il commence à 09h00 .Quand je récupère le getFireTime() vers 09:35 qu'est-ce qu'il retourne? 09h00 ou 09h30? – Abhishek

+0

9:30. Si c'est un SimpleTrigger, c'est startTime sera 9:00 - mais cette astuce ne fonctionnera pas nécessairement pour les autres types de déclencheurs. – jhouse

+0

Pour clarifier, cela ne fonctionnera pas nécessairement pour les autres types de déclencheurs, car un SimpleTrigger se déclenche pour la première fois sur startTime, mais cela n'est pas nécessairement vrai pour les autres types de déclencheur, par exemple, Un CronTrigger minutes pendant l'heure de 9h00 tous les jours, par exemple "0 0/10 9 * *?" mais son heure de début peut être réglée à pratiquement n'importe quoi avant ou au moment où il veut commencer à tirer - à moins que vous ayez volontairement votre application à toujours mettre le StartTime de CronTrigger au premier temps de tir. – jhouse

Questions connexes