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

2022-09-02 00:38:13

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

 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

那么,这些表中的每一个的目的是什么,它意味着什么呢?

提前致谢。


答案 1

我最近有机会在石英上工作。我自己对这个话题不是100%清楚,我将尽力从我的个人经验中回答你的问题。

你必须记住这个基本的流程 - 1。创建作业。2. 创建触发器。3. 调度程序(作业、触发器) 以上所有表均基于以上 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


答案 2

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

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

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


推荐