quartz 调度程序的每个 table 表示什么?

What does each table for quartz scheduler signify?

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

 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

那么这些表中的每一个的目的是什么,它代表什么?

提前致谢。

我最近有机会在 quartz 上工作。我自己对这个话题不是 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 trigger 用于保存不活跃的trigger信息
  6. 日历对于从触发器的触发计划中排除时间块很有用。例如,您可以创建一个触发器,在每个工作日的 9:30 上午触发一个作业,然后添加一个排除所有公司假期的日历。 (取自网站。我还没有处理过)
  7. 老实说,我没有在 qrtz_locks、qrtz_scheduler_sate 表格中工作过。

查看我使用 MySQL workbench 进行逆向工程的这张图片。

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

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

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