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 | 用于自定义触发器的可重用表。当前 ICalendarIntervalTrigger 和 IDailyTimeIntervalTrigger 使用此表 |
qrtz_paused_trigger_grps | 存储 IScheduler.PauseTriggers 数据 |
为不同提供商创建这些表的脚本可以在 此处 找到。
Quartz 触发器表
此表存储了跨所有类型的 ITrigger
数据的配置。
触发器状态 | 描述 |
---|---|
正常 | 触发器有触发时间,并将按计划执行 |
暂停 | 已暂停,将不执行 |
完成 | 触发器将不再触发,它没有更多的“触发时间” |
错误 | 触发器遇到错误,将不再触发 |
阻塞 | 此触发器关联了一个设置了 DisallowConcurrentExecutionAttribute 的作业,必须等待,但触发器希望被触发 |
无 | 触发器不存在 |
等待 | 仅数据库中使用,意味着作业已准备好被挑选执行 |