石英调度程序的每个表是什么意思?

时间:2018-02-01 07:16:32

标签: java spring-boot quartz-scheduler

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

 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

那么每个表的目的是什么?它是什么意思?

提前致谢。

2 个答案:

答案 0 :(得分:3)

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

您必须记住以下基本流程- 1.创建工作。 2.创建一个触发器。 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工作台进行反向工程的。 enter image description here

答案 1 :(得分:2)

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

  1. qrtz_lock 存储执行作业的实例名称的值,以避免出现多个节点执行同一作业的情况

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