织梦采集定时自动发布设置

织梦CMS定时发布采集自动化

采集与发布分离是内容运营的常见策略:采集先入库为草稿,再按计划定时发布,既能控制更新节奏符合搜索引擎偏好,又能均衡服务器负载。本文介绍如何用织梦采集 + 定时任务实现无人值守的自动发布流水线。

一、整体流程设计

完整的自动发布链路由四个环节构成:

  1. 采集入库:采集节点抓取内容,写入待发布队列。
  2. 分配发布时间:为每篇文档分配一个未来发布时间。
  3. 定时触发:计划任务定时扫描并发布到期文档。
  4. 生成静态:发布后自动生成对应 HTML。

二、采集入库设为待发布

1. 采集后状态

在采集节点设置中,将“采集后文档状态”设为“未审核”或“草稿”,而非直接发布,便于后续按计划释放:

采集后状态:未审核(待发布队列)

2. 关键词与栏目预设

采集时即指定好目标栏目与默认关键词,避免发布前再人工调整。

三、定时发布插件配置

1. 安装定时发布插件

在“模块 → 模块管理”中安装“定时发布”或“自动发布”类插件。安装后入口出现在“核心 → 批量维护”下。

2. 设置发布时间分布

插件支持为待发布文档批量分配发布时间,可按时间段均匀分布:

发布时间段:08:00 - 22:00
每日发布数量:20 篇
发布间隔:30 分钟
起始日期:2026-07-30
发布时间建议集中在用户活跃时段(上午 9-11 点、晚间 19-21 点),既符合阅读习惯也利于抓取。

3. 时间分配策略

四、计划任务触发发布

1. 宝塔计划任务

在宝塔面板添加计划任务,每 5 分钟执行一次发布脚本:

# 任务类型:Shell 脚本
# 执行周期:每 5 分钟
php /www/wwwroot/站点/dede/auto_publish.php

2. 发布脚本逻辑

脚本扫描 dede_archivessenddate <=当前时间 且状态为待发布的文档,将其改为已发布并触发生成:

// auto_publish.php 核心逻辑
$now=time();
$dsql->SetQuery("UPDATE `dede_archives`
    SET arcrank=0 WHERE arcrank=-1 AND senddate <=$now");
$dsql->ExecuteNoneQuery();

// 触发生成静态
MakeArt($aid);

五、静态生成配合

发布后需生成 HTML 才能被访问。两种方案:

发布与生成同在高频执行会占用大量 CPU,建议两者错峰,发布每 5 分钟、生成每 30 分钟。

六、发布监控与告警

  1. 在发布脚本中加入日志记录,每次执行写入 /data/logs/publish.log
  2. 当日发布量低于预期 50% 时触发告警(邮件/钉钉)。
  3. 定期检查待发布队列是否堆积,避免采集过快导致积压。

七、注意事项

建议保留一个“紧急暂停”开关,遇到突发事件可一键停止自动发布,改人工接管。

自动化发布运营建议

定时自动发布能极大解放人力,但也容易让站点变成“无人值守的流水线”而失去温度。建议在自动化的基础上保留人工巡检环节,每天抽查当日已发布内容质量,及时处理采集源异常或违规内容。同时把发布节奏与运营活动联动——新品上线、节日营销时手动加密发布,让自动化服务于运营节奏而非反过来,才能让站点既有持续更新的稳定性,又有把握关键节点的灵活性。