Quelle est la différence entre la veille du programmateur () et pauseAll ()?
-
01-10-2019 - |
Question
J'utilise v.1.8.0 Quartz Scheduler.
Quelle est la différence entre scheduler.standby () et scheduler.pauseAll () ?
Mode veille () - arrête temporairement le déclenchement de triggers du planificateur.
pauseAll () - Pause tous les déclencheurs - semblable à l'appel pauseTriggerGroup (groupe) sur tous les groupe, cependant, après avoir utilisé ce Procédé resumeAll () doit être appelée pour effacer l'état du planificateur de « Se souvenir » que tous les nouveaux déclencheurs seront mis en pause comme ils sont ajoutés.
D'après ce que j'ai compris de la documentation de l'API, je ne suis pas en mesure de facilement / différencier clairement / distinguer de chacun d'eux. Je vois tous les deux servir le même but - temporairement pause / arrêter tous les déclencheurs du planificateur, puis suivi d'un start () (pour veille) ou resumeAll () (pour pauseAll) pour effacer l'état du planificateur. Y at-il autre différence?
Les experts espèrent peut me aider à comprendre une différence subtile.
La solution
La différence est dans déclenchement des instructions de ratés d'allumage appliquant comportement.
Lorsque vous appelez start () après veille (), les ratés de combustion qui apparaissent en mode veille, sera ignoré.
Lorsque vous appelez resumeAll () après pauseAll (), tous les ratés de combustion qui apparaissent pendant le programmateur a été suspendu, sera applyed.
Autres conseils
Il y a une différence quand planificateur est repris après veille et pauseAll .
J'ai fait la différence en gras dans la description suivante de docs API.
Mode veille :
veille void () jette SchedulerException arrête temporairement le Planificateur de déclenchement des triggers.
Quand le démarrage () est appelé (pour amener le ordonnanceur du mode stand-by), déclenchement des instructions de ratés d'allumage ne sera pas appliquer pendant l'exécution de la méthode start () - seront les ratés d'allumage détectée immédiatement après (par le JobStore de processus normal de).
Le planificateur est pas détruit, et peut être relancée à tout moment.
pauseAll :
pauseAll void () lancers francs SchedulerException Pause tous les déclencheurs - semblable à appeler pauseTriggerGroup (groupe) sur tous les groupe, cependant, après avoir utilisé ce Procédé resumeAll () doit être appelée pour effacer l'état du planificateur de « Se souvenir » que tous les nouveaux déclencheurs seront mis en pause comme ils sont ajoutés.
Lorsque resumeAll () est appelée (à un-pause), déclenchement raté d'allumage Des instructions seront appliquées.
Voici ce que je suis arrivé à partir du code source v1.8.6:
standby()
fige simplement le fil de programmateur, ce qui signifie plus de déclenchement sera tiré à partir de maintenant, même les nouveaux déclencheurs ajoutés plus tard .
start()
juste reprendre le fil de planificateur, et ne sera pas d'appliquer des politiques ratés d'allumage immédiatement . Mais tous les ratés d'allumage seront appliquées plus tard naturellement.
pauseAll()
est similaire à pauseTriggerGroup()
d'appel sur tous les groupes de déclenchement maintenant existants , ce qui signifie que ces nouveaux groupes de déclenchement ajoutés seront ensuite tiré normalement. Et Veuillez noter qu'il n'y a rien à voir avec pauseJob()
ou pauseJobGroup()
, il est juste de ce qui se passe sur les déclencheurs et leurs groupes.
resumeAll()
est similaire à resumeTriggerGroup()
d'appel sur tous les groupes de déclenchement existant actuellement. En outre, des ratés d'allumage seront appliquées lors de l'exécution de resumeAll()
.
start () et de veille () sont des méthodes par instance. D'autres instances en cours d'exécution en mode cluster continueront à l'emploi de déclenchement.
resumeAll () et pauseAll () est applicable à l'ensemble du cluster.
Alors que pauseAll()
fait une pause toutes les horaires (déjà créé par ce moment), pauses standby()
un programmateur lui-même . Ainsi, lorsque vous créez un nouveau calendrier, après pauseAll()
il sera planifié et exécuté de façon appropriée, mais en cas de standby()
il court au plus tôt une méthode « start () » sera appelé un programmateur.