feat: add durable schedule management and multi-node crash recovery

This commit is contained in:
2026-09-17 16:28:58 +08:00
parent d65cf96ea7
commit 6805506450
43 changed files with 2952 additions and 29 deletions

View File

@@ -13,11 +13,17 @@ type Schedule struct {
core.Record
// Name 可读名称,唯一性范围由对应数据表约束。
Name string `db:"name"`
// QueueID 计划终身绑定的队列;旧结构人工行可为空,不允许参与扫描。
QueueID *core.ID `db:"queue_id"`
// ProcessingVersion 当前积压处理所用版本;发布新版本不覆盖旧进度。
ProcessingVersion uint64 `db:"processing_version"`
// CheckAt 下次允许扫描的 UTC 时间;为空表示当前没有扫描工作。
CheckAt *time.Time `db:"check_at"`
// CurrentVersion 当前生效的计划版本号,发布时与版本记录原子更新。
CurrentVersion uint64 `db:"current_version"`
// Paused 暂停标记;停止新的受控工作,不表示在途请求已停止。
Paused bool `db:"paused"`
// NextFireAt 下一计划触发时间;没有后续触发时为空。
// NextFireAt 下一原计划触发时间;版本刚切换尚待计算或已经结束时为空,需结合 CheckAt 判断。
NextFireAt *time.Time `db:"next_fire_at"`
}