web-dev-qa-db-fra.com

Que signifie chaque table pour le planificateur de quartz?

Il existe peu de tableaux que le planificateur à quartz utilise pour planifier des travaux et identifier le travail en cours d'exécution. Il utilise les tableaux suivants:

 qrtz_fired_triggers
 qrtz_simple_triggers
 qrtz_simprop_triggers
 qrtz_cron_triggers
 qrtz_blob_triggers
 qrtz_triggers
 qrtz_job_details
 qrtz_calendars
 qrtz_paused_trigger_grps
 qrtz_locks
 qrtz_scheduler_state

Quel est donc le but de chacun de ces tableaux et que signifie-t-il?

Merci d'avance.

9
Nakul Kumar

J'ai eu la chance de travailler sur du quartz récemment. Je ne suis pas moi-même à 100% clair sur ce sujet et je vais faire de mon mieux pour répondre à votre question à partir de mon expérience personnelle.

Vous devez vous rappeler ce flux de base: 1. Créez un travail. 2. Créez un déclencheur. 3. Planificateur (travail, déclencheur) Tous les tableaux ci-dessus sont basés sur les 3 étapes ci-dessus.

  1. qrtz_triggers est l'endroit où les informations générales d'un déclencheur sont enregistrées.
  2. qrtz_simple_triggers, qrtz_simprop_triggers, qrtz_crons_triggers, qrtz_blob_triggers ont une relation de clé étrangère avec qrtz_triggers qui enregistre ces détails spécifiques. Ex. Cron a une expression cron qui lui est propre.
  3. qrtz_job_details est simplement la tâche à exécuter.
  4. qrtz_fired_triggers est un journal de tous les déclencheurs qui ont été déclenchés.
  5. le déclencheur qrtz_paused consiste à enregistrer les informations sur les déclencheurs qui ne sont pas actifs.
  6. Les calendriers sont utiles pour exclure des blocs de temps du calendrier de déclenchement du déclencheur. Par exemple, vous pouvez créer un déclencheur qui déclenche un travail tous les jours de la semaine à 9 h 30, puis ajouter un calendrier qui exclut tous les jours fériés de l'entreprise. (extrait du site Web. Je n'y ai pas travaillé)
  7. Honnêtement, je n'ai pas travaillé dans les tables qrtz_locks, qrtz_scheduler_sate.

Découvrez cette image que j'ai inversée en utilisant Mybench Workbench. enter image description here

11
Kedar

Je peux fournir quelques entrées pour les tables qrtz_lock et qrtz_scheduler_sate:

  1. qrtz_lock sert à capturer l'instance ayant un verrou sur le trigger_access dans l'environnement en cluster lorsque nous avons plusieurs nœuds en cours d'exécution. Pour éviter le scénario, où les travaux en cours d'exécution ne sont pas exécutés à chaque nœud du cluster.

  2. qrtz_scheduler_state sert à capturer l'état du nœud de sorte que si, dans tous les cas, un nœud tombe en panne ou échoue à exécuter l'un des travaux, l'autre instance exécutée en mode cluster peut choisir le travail raté.

0
chetan mahajan