Z-Blog 定时发布文章的实现原理与失败排查
摘要
先说结论:Z-Blog 的定时发布依赖「有待发布文章 + 有访问触发或计划任务执行」。绝大多数定时发布失败,不是功能坏了,而是没人访问、计划任务没配、或时区不对。 一、先理解它是怎么工作的 定时发布不是「到点自动开一个进程」,而是靠以下两种
先说结论:Z-Blog 的定时发布依赖「有待发布文章 + 有访问触发或计划任务执行」。绝大多数定时发布失败,不是功能坏了,而是没人访问、计划任务没配、或时区不对。
一、先理解它是怎么工作的
定时发布不是「到点自动开一个进程」,而是靠以下两种方式之一触发检查:
- 访问触发:有前台访问时顺带检查并发布到期文章。站点没流量就不会触发。
- 计划任务(Cron):主机或面板定时访问站点,主动触发检查。这是小流量站更可靠的方式。
二、最常见的四个失败原因
- 没有访问也没配 Cron:文章一直「待发布」。解决办法是配一条定时请求。
- 时区不一致:后台时区与服务器时区不同,设定的时间会偏差几小时。先核对站点时区设置。
- 状态不是待发布:草稿与待发布是两回事,草稿永远不会自动上线。
- 缓存干扰:文章其实已发布,但首页缓存未刷新,看起来像没发。
三、配置计划任务的正确姿势
- 频率:5–10 分钟一次足够,别设成每分钟,容易被主机限流。
- 请求目标:指向站点首页或公开接口即可,不要带后台路径。
- 验证:配好后手动执行一次,看返回状态码是否 200。
四、排查流程
- 看后台文章状态,确认是「待发布」而不是「草稿」。
- 核对设定时间与站点时区。
- 手动访问一次首页,看文章是否立刻出现 → 出现说明只是缺触发。
- 仍不出现,清缓存并重建,再看数据库里该文章的状态字段。
- 全都不行,检查计划任务是否真的在跑(看访问日志有没有规律请求)。
五、稳妥做法
重要时间节点的发布,不要完全依赖自动:提前一天把文章设为待发布,并在关键时间点人工确认一次。技术兜底 + 人工确认,比赌定时准确要稳。
2026年10月22日 10:38
前后30天 · 点日期看归档
9月22日
9月23日
9月24日
9月25日
9月26日
9月27日
9月28日
9月29日
9月30日
10月1日
10月2日
10月3日
10月4日
10月5日
10月6日
10月7日
10月8日
10月9日
10月10日
10月11日
10月12日
10月13日
10月14日
10月15日
10月16日
10月17日
10月18日
10月19日
10月20日
10月21日
10月22日
10月23日
10月24日
10月25日
10月26日
10月27日
10月28日
10月29日
10月30日
10月31日
11月1日
11月2日
11月3日
11月4日
11月5日
11月6日
11月7日
11月8日
11月9日
11月10日
11月11日
11月12日
11月13日
11月14日
11月15日
11月16日
11月17日
11月18日
11月19日
11月20日
11月21日