石英调度程序的每个表代表什么?

Nak*_*mar 6 java quartz-scheduler spring-boot

石英调度程序用于调度作业并标识当前正在运行的作业的表很少。它使用以下表格:

 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
Run Code Online (Sandbox Code Playgroud)

那么,每个表的目的是什么?

提前致谢。

小智 11

我最近有机会从事石英工作。我本人对此问题还不是100%清楚,我将根据我的个人经验,尽力回答您的问题。

您必须记住以下基本流程:1.创建工作。2.创建一个触发器。3. Scheduler(作业,触发器)上面所有表均基于上述3个步骤。

  1. qrtz_triggers是保存触发器的常规信息的位置。
  2. qrtz_simple_triggers,qrtz_simprop_triggers,qrtz_crons_triggers,qrtz_blob_triggers具有与qrtz_triggers的外键关系,这些外键关系保存了这些特定细节。例如 Cron具有cron表达,这是它唯一的。
  3. qrtz_job_details只是要执行的任务。
  4. qrtz_fired_triggers是已触发的所有触发器的日志。
  5. qrtz_paused触发器用于保存有关非活动触发器的信息。
  6. 日历对于从触发器的触发计划中排除时间段很有用。例如,您可以创建一个触发器,该触发器在每个工作日的上午9:30触发一个工作,然后添加一个排除所有企业假期的日历。(摘自网站。我还没做过)
  7. 老实说,我没有在qrtz_locks和qrtz_scheduler_sate表中工作。

检出此图像,该图像是我使用MySQL工作台进行反向工程的。 在此处输入图片说明

  • @Roberto 是的,如果你想使用 JDBC Job Store,你必须创建它们 (2认同)

che*_*jan 6

我可以为 qrtz_lock 和 qrtz_scheduler_sate 表提供一些输入:

  1. qrtz_lock存储执行作业的实例名的值,避免多个节点执行同一个作业的场景

  2. qrtz_scheduler_state用于捕获节点状态,以便在任何情况下,如果一个节点出现故障或无法执行其中一项作业,则以集群模式运行的另一个实例可以选择误触发的作业。