跳到主要内容
版本:2.x

调度器

Flarum的调度器让扩展程序能够轻松地自动化某些任务。 在本指南中,我们将介绍如何设置它。 我们不会深入讨论cron本身的细节,但如果你想进一步了解它,我建议你查看Wikipedia上关于cron的文章

为什么我要关心?

很简单,现在有越来越多的扩展程序支持在后台自动为你处理某些功能。 想知道为什么fof/drafts的“定时发布”没有发布,抑或是fof/best-answer的“在X天后提醒用户设置最佳答案”功能没有被触发吗? 那是因为它们会自动用调度器服务来配置自己,但这一切配置的前提是一行简短的cron任务。

有什么扩展程序现在在使用调度器?

最火的一些例子如下:

让我们配置起来!

几乎所有(全部)Linux发行版本都自带或可以安装cron。 例如,在基于Debian和Ubuntu的系统上,你可以这样安装cron

sudo apt-get update
sudo apt-get install cron

如果你使用的是基于RHEL的Linux发行版(如CentOS、AlmaLinux、Rocky Linux等),可以这样安装cron:

sudo dnf update
sudo dnf install crontabs

安装好了cron,让我们创建Flarum所需的唯一定时条目:

crontab -e

这将打开 cron 编辑器。 你或许会有其他 cron 条目,但没关系。 添加以下这行,并记住在底部留一个空行。

* * * * * cd /path-to-your-project && php flarum schedule:run >> /dev/null 2>&1

* * * * * 会告诉 cron 每分钟都来运行你的命令。

如果你想修改触发时间,但不确切知道 cron 表达式是如何工作的,你可以使用cron表达式生成器来轻松获取所需的命令。

cd /path-to-your-project && php flarum schedule:run 这行代码将执行Flarum的调度器以触发当前所有等待运行的任务。 如果PHP不在你的系统路径中,你可能需要尝试设置PHP的完整路径。

最后,>> /dev/null 2>&1 抑制了命令的所有输出。

瞧! 现在任何注册了定时任务的扩展程序,从每分钟到每天、每月、每年,都将自动在你的服务器上运行。