logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动
06/10/2025, by Ivan

配置 cron 是网站安装中的重要步骤,它有助于维护网站资源,例如搜索结果索引、检查 Drupal 核心与模块更新,以及清理临时文件。

正确配置的 cron 任务可以管理多种操作:

什么是 cron?

Cron 是一个在指定时间间隔运行命令的守护进程,这些命令称为 “cron 任务(cron jobs)”。Cron 可用于 Unix、Linux 和 Mac 系统。Windows 服务器则使用 计划任务 来执行命令。实际的 “cron 任务” 是一个定时触发的操作,通常(也是最有效的方式)由你的网站主机服务器执行,但也可以由远程服务器或本地电脑配置运行。

实际上,cron 任务通过访问你网站上的 cron.php 文件来执行,例如: http://www.example.com/cron.php?cron_key=0MgWtfB33FYbbQ5UAC3L0LL3RC0PT3RNUBZILLA0Nf1Re。 你可以在 “管理 → 报告 → 状态报告(admin/reports/status)” 页面中的 “Cron 维护任务” 部分找到 cron.php 的准确 URL。

启用 cron

最简单的方法是让 Drupal 自动执行(默认启用),使用内置的 “自动化 cron” 系统。 你可以通过“管理 → 配置 → 系统 → Cron(admin/config/system/cron)” 页面管理它。 默认频率是每 3 小时运行一次。之后,cron 将由访问你网站的用户触发,每隔三小时最多运行一次。

请注意,对于访问量较低的网站,仍建议创建一个独立的 cron 任务。如果要禁用自动化 cron,可将“运行 cron 的间隔时间”下拉框设置为“从不”。

自动化 cron 系统兼容所有操作系统,因为它实际上不依赖系统级的 cron 守护进程。它在每次 Drupal 请求结束时检查上次运行 cron 的时间,如果间隔太长,就在该请求中执行 cron 任务。 该方法的两个缺点是:(1) cron 任务仅在 Drupal 有请求时运行;(2) cron 执行的负载(CPU 与内存消耗)会附加到随机的页面请求上,可能导致性能下降,甚至在复杂网站上超出内存限制。

另一种方式(适用于任何版本的 Drupal)是 创建系统级 cron 任务,或使用外部服务(如 EasyCronCronless)来执行 cron。这种方法更可靠(因为它始终按计划执行),并且消耗的资源更少(cron 处理不会叠加到页面请求中)。因此,当有选择时,通常推荐使用该方法。如果你创建了独立的 cron 任务,可以完全禁用 Drupal 的“自动化 cron”系统。

禁用“自动化 cron”

出于性能考虑,或者如果你希望 cron 仅通过外部触发执行,可以禁用自动化 cron 系统。

你可以通过进入“管理 → 配置 → 系统 → Cron(admin/config/system/cron)”页面,将“运行 cron 的间隔时间”设置为“从不”来禁用它。

另一种在 Drupal 8 中禁用 cron 的方法是向 settings.php 文件添加以下行:

$config['automated_cron.settings']['interval'] = 0;

请注意,这会将 admin/config/system/cron 中的设置固定为“从不”,并且管理员用户将无法通过界面更改该设置。