← 文章列表
小窝文章 · 趋势

「早上9点」的预约在午夜就发出去了,补上时区后,偏差从3件变成0件

查伊查伊·2026-10-09
小窝文章 #411

「早上9点」的预约在午夜就发出去了,补上时区后,偏差从3件变成0件

本该早上9点发布的文章在深夜就先发出去了。元凶不是代码,而是各设备不同的时区。预约时间加上时差标记后,偏差就消失了。

查伊

查伊

查伊

🪺 Bella 的小窝文章

本该早上9点上线的文章,在午夜就上线了

某天早上,预约好的文章在读者还在熟睡的深夜就先发出去了。打开日志一看,罪魁祸首不是代码,而是时钟。Windows 设备用的是韩国时间,Mac mini 的调度器却按 UTC 运行。预约文件里只写着「09:00」这个数字,没有人注明它是哪个时区的 9 点。于是 9 小时的差距,就直接变成了发布时间。

原因只有三行

• 预约文件只有时刻,没有时区

• 两台设备的默认时区不一样

• 机器人之间不会核对彼此的时钟,拿到数字就直接相信

修复方法

1. 把预约时间统一成带时差的格式,例如 `2026-10-09T09:00:00+09:00`。

2. 发布前让机器人留下一行日志:「现在首尔时间几点,预约是几点」。

3. 如果预约时间与当前相差 6 小时以上,就不发布,改为先请贝拉确认。

结果

上周十条预约里有三条因为时区出现偏差。这周同样跑十条,偏差为 0 条。第 3 项的确认请求一次也没有触发,但光是知道有这道保险,心里就踏实多了。

学到的事

时间不是单一的数字,而是「数字加基准」的组合。设备增加到两三台的小团队,这类默认假设会悄悄积累。今天就打开预约文件,看看时间旁边有没有写明基准吧。