跳转到内容

desktop/src-tauri/crates/core/src/schedules.rs

第 1 条注释,第 1 行

desktop/src-tauri/crates/core/src/schedules.rs:1

//! 逐源提取计划(extraction_schedules/schedule_state 接线,M6 余项)。

第 2 条注释,第 2 行

desktop/src-tauri/crates/core/src/schedules.rs:2

//!(空行)

第 3 条注释,第 3 行

desktop/src-tauri/crates/core/src/schedules.rs:3

//! 约定(scheduling.md):

第 4 条注释,第 4 行

desktop/src-tauri/crates/core/src/schedules.rs:4

//! - 逐源频率覆盖全局:固定间隔 15 秒–24 小时,或每日/每周指定时间

第 5 条注释,第 5 行

desktop/src-tauri/crates/core/src/schedules.rs:5

//! (time_of_day "HH:MM"、weekday ISO 1–7 周一=1);首版不开放任意 cron/shell;

第 6 条注释,第 6 行

desktop/src-tauri/crates/core/src/schedules.rs:6

//! - 启用的自定义计划覆盖全局自动节奏;手动刷新仍包含全部启用来源;

第 7 条注释,第 7 行

desktop/src-tauri/crates/core/src/schedules.rs:7

//! - 同源不并发(应用层 refresh 单飞合并);禁用后无自动读取;

第 8 条注释,第 8 行

desktop/src-tauri/crates/core/src/schedules.rs:8

//! - 错过时点(休眠/关机)醒来后只补扫一次(next_due 在运行后推进);

第 9 条注释,第 9 行

desktop/src-tauri/crates/core/src/schedules.rs:9

//! - 时区固定保存;DST 重复时刻取第一次,缺失时刻取跳变后的首个有效时刻。

第 10 条注释,第 16 行

desktop/src-tauri/crates/core/src/schedules.rs:16

/// 逐源间隔允许范围(秒)。

第 11 条注释,第 20 行

desktop/src-tauri/crates/core/src/schedules.rs:20

/// 一条逐源计划规则(scope 恒为 "source",schedule_id = "source:<instance_id>")。

第 12 条注释,第 24 行

desktop/src-tauri/crates/core/src/schedules.rs:24

/// 规则类型为 interval、daily 或 weekly。

第 13 条注释,第 26 行

desktop/src-tauri/crates/core/src/schedules.rs:26

/// interval 专用:15..=86400 秒。

第 14 条注释,第 28 行

desktop/src-tauri/crates/core/src/schedules.rs:28

/// daily/weekly 专用:"HH:MM"(24h 制,本地时区语义)。

第 15 条注释,第 30 行

desktop/src-tauri/crates/core/src/schedules.rs:30

/// weekly 专用:ISO 1..=7(周一=1,周日=7)。

第 16 条注释,第 32 行

desktop/src-tauri/crates/core/src/schedules.rs:32

/// 计划时区(IANA 名;空串在首次保存时固定为用户统计时区)。

第 17 条注释,第 48 行

desktop/src-tauri/crates/core/src/schedules.rs:48

/// 规则校验(拒绝任意 cron/越界)。

第 18 条注释,第 81 行

desktop/src-tauri/crates/core/src/schedules.rs:81

// tz 非空时必须可解析为 IANA 时区:否则 next_due_ms 静默返回 None,

第 19 条注释,第 82 行

desktop/src-tauri/crates/core/src/schedules.rs:82

// 计划永不触发且无任何报错(fail-closed 到 Validation,而非静默失效)。

第 20 条注释,第 90 行

desktop/src-tauri/crates/core/src/schedules.rs:90

/// 计算下一次到期毫秒(纯函数)。

第 21 条注释,第 91 行

desktop/src-tauri/crates/core/src/schedules.rs:91

/// None 只在:规则未启用、tz 名无法解析(validate_rule 已拦截非空 tz;

第 22 条注释,第 92 行

desktop/src-tauri/crates/core/src/schedules.rs:92

/// 空 tz 继承的 fallback_tz 由设置层校验)、或 now 越出时间戳范围。

第 23 条注释,第 93 行

desktop/src-tauri/crates/core/src/schedules.rs:93

/// daily/weekly 的重复时刻只取第一次;缺失时刻顺延到跳变后的首个有效时刻。

第 24 条注释,第 147 行

desktop/src-tauri/crates/core/src/schedules.rs:147

// 八天内找不到(理论不可达):保守回退。

第 25 条注释,第 154 行

desktop/src-tauri/crates/core/src/schedules.rs:154

/// 预览接下来三个计划时间;到期任务由 due_instances 合并,

第 26 条注释,第 155 行

desktop/src-tauri/crates/core/src/schedules.rs:155

/// 错过多个时间点时只采集一次。

第 27 条注释,第 169 行

desktop/src-tauri/crates/core/src/schedules.rs:169

/// 旧规则随统计时区动态变化;在统计设置再次更改前,

第 28 条注释,第 170 行

desktop/src-tauri/crates/core/src/schedules.rs:170

/// 保存规则当前实际使用的时区。

第 29 条注释,第 180 行

desktop/src-tauri/crates/core/src/schedules.rs:180

/// upsert 一条逐源计划(含 next_due 重算;config_version 递增)。

第 30 条注释,第 187 行

desktop/src-tauri/crates/core/src/schedules.rs:187

// 保存首次使用的默认时区,后续统计时区变化不改变此规则。

第 31 条注释,第 240 行

desktop/src-tauri/crates/core/src/schedules.rs:240

/// 删除逐源计划(恢复继承全局)。

第 32 条注释,第 254 行

desktop/src-tauri/crates/core/src/schedules.rs:254

/// 读取一条逐源计划(UI 回显)。

第 33 条注释,第 298 行

desktop/src-tauri/crates/core/src/schedules.rs:298

/// 到期(计划启用且来源实例也启用)的实例集合:next_due_at_ms <= now。

第 34 条注释,第 299 行

desktop/src-tauri/crates/core/src/schedules.rs:299

/// 联查 source_instances.enabled,排除已停用来源。

第 35 条注释,第 300 行

desktop/src-tauri/crates/core/src/schedules.rs:300

/// INNER JOIN 同样排除没有对应来源实例的计划。

第 36 条注释,第 301 行

desktop/src-tauri/crates/core/src/schedules.rs:301

/// 未访问来源没有运行结果,不推进下次采集时间;

第 37 条注释,第 302 行

desktop/src-tauri/crates/core/src/schedules.rs:302

/// 停用或缺失来源不产生虚构的失败记录。

第 38 条注释,第 319 行

desktop/src-tauri/crates/core/src/schedules.rs:319

/// 有自定义启用计划的实例集合(全局刷新时排除)。

第 39 条注释,第 333 行

desktop/src-tauri/crates/core/src/schedules.rs:333

/// 运行后推进:next_due = 以当前时刻重算;schedule_state 记录成败。

第 40 条注释,第 418 行

desktop/src-tauri/crates/core/src/schedules.rs:418

// Lord Howe 只跳变 30 分钟,不能固定增加一小时。

第 41 条注释,第 520 行

desktop/src-tauri/crates/core/src/schedules.rs:520

// 每日 UTC 09:00:当前 2027-01-15T08:00:00Z 时,下一次为当日 09:00。

第 42 条注释,第 540 行

desktop/src-tauri/crates/core/src/schedules.rs:540

// 2027-01-15 是周五(ISO 5)。周一 09:00 的 weekly ⇒ 下周一 2027-01-18。

第 43 条注释,第 593 行

desktop/src-tauri/crates/core/src/schedules.rs:593

// due_instances 联 source_instances.enabled:先注册实例行(采集层 upsert)。

第 44 条注释,第 616 行

desktop/src-tauri/crates/core/src/schedules.rs:616

// 未到期。

第 45 条注释,第 618 行

desktop/src-tauri/crates/core/src/schedules.rs:618

// 到期。

第 46 条注释,第 623 行

desktop/src-tauri/crates/core/src/schedules.rs:623

// 推进后不再到期;custom 集合包含。

第 47 条注释,第 629 行

desktop/src-tauri/crates/core/src/schedules.rs:629

// 删除恢复继承。

第 48 条注释,第 670 行

desktop/src-tauri/crates/core/src/schedules.rs:670

// 停用来源:到期也不返回(禁用后无自动读取)。

第 49 条注释,第 679 行

desktop/src-tauri/crates/core/src/schedules.rs:679

// 重新启用:计划恢复生效。

第 50 条注释,第 691 行

desktop/src-tauri/crates/core/src/schedules.rs:691

// 停用计划本身(rule.enabled=false)同样不到期。

第 51 条注释,第 715 行

desktop/src-tauri/crates/core/src/schedules.rs:715

// 合法 IANA 名通过。