Quartz 数据库架构

当使用基于 ADO.NET 的作业存储(通常是 JobStoreTX)时,Quartz 需要创建一组表。创建初始架构或迁移现有架构是一个手动步骤,因为 Quartz.NET 不会自动创建或迁移这些表。

表名 简要描述
qrtz_calendars 存储非标准日历
qrtz_job_details 存储 IJobDetail 数据
qrtz_locks Quartz 使用的锁
qrtz_scheduler_state 存储 IScheduler 数据
qrtz_triggers 存储 ITrigger 数据
qrtz_cron_triggers 存储 CRON 触发器的 cron 表达式
qrtz_fired_triggers 当前正在运行的触发器
qrtz_blob_triggers 包含二进制大对象数据存储的触发器表
qrtz_simple_triggers 用于非常简单的重复触发器的数据
qrtz_simprop_triggers 用于自定义触发器的可重用表。当前 ICalendarIntervalTriggerIDailyTimeIntervalTrigger 使用此表
qrtz_paused_trigger_grps 存储 IScheduler.PauseTriggers 数据

为不同提供商创建这些表的脚本可以在 此处 找到。

Quartz 触发器表

此表存储了跨所有类型的 ITrigger 数据的配置。

触发器状态 描述
正常 触发器有触发时间,并将按计划执行
暂停 已暂停,将不执行
完成 触发器将不再触发,它没有更多的“触发时间”
错误 触发器遇到错误,将不再触发
阻塞 此触发器关联了一个设置了 DisallowConcurrentExecutionAttribute 的作业,必须等待,但触发器希望被触发
触发器不存在
等待 仅数据库中使用,意味着作业已准备好被挑选执行
在本文档中