了解新 Joomla! 任务计划程序
Joomla 的任务计划程序是 Joomla! 4.1 核心操作系统的全新功能。Joomla 开发团队将其添加到核心中,以帮助自动化你可能不想亲自完成的重复性任务。你可以使用任务计划程序执行各种维护和报告任务,它运行在可以添加和自定义的插件系统上。
任务计划程序通过 Joomla 管理员中的 cron 作业运行插件中详细说明的任务。
什么是 cron 作业?你问。让我们现在深入了解。
什么是 Cron 作业?
你是否曾经安装了一个 Joomla 组件,却发现你需要设置一个 cron 作业才能在你的托管控制面板上完全使用它?我们也这样做过。
cron 作业用于自动化组件操作的一些部分。这通常是一个你希望避免的重复性任务。由于这个原因,许多网站所有者忘记执行这些任务。结果,他们的网站可能不如预期那么好。
cron 作业通常用于处理时事通讯系统中的电子邮件队列,或将电子商务订单与配送平台同步,或清理缓存等。
设置 cron 作业在服务器上运行的一个问题是知道如何在控制面板中格式化命令行,以便它能够触发并按预期运行。
你知道你的 PHP 文件夹在哪里吗?关于 cron 文件的完整 URL 呢?
这些都是组件作者无法帮助你的事情,它们在不同的托管公司中通常是不同的。
一个典型的 cron 命令行有三个部分,可能看起来像这样
usr/local/bin/php /home/site1234/httpdocs/cli/cron.php
第一部分是到你的 PHP 文件夹的路径,然后有一个额外的空格,最后是 cron 将执行的脚本的 URL。
然后您需要解析触发cron作业的时间设置。您需要决定它应该多久运行一次,您的托管提供商是否允许它以这种频率运行,或者根本不允许?一些托管公司会对cron作业的时间表设置限制,以帮助维护服务器资源。如果您在共享服务器上托管网站,这几乎总是成立的。
通常,VPS服务器或专用服务器不会有这些限制,因为服务器上的所有资源都属于您。但是,这些服务器的运行成本会比共享托管更高,这是许多小型企业和个人网站所在的地方。
有经验的网络开发者会理解这一点,但许多想自己运行网站的人往往在这些设置上感到困扰。然后他们就会寻求支持,帮助他们的组件正常工作。
Joomla的新任务调度器减轻了这些痛苦,并旨在让您留在网站上,处于熟悉的环境中。而不是在您的Web服务器控制面板的螺丝钉和螺栓中忙得不可开交。
任务调度器概述
现在我们知道了cron作业是什么,让我们来看看Joomla任务调度器的某些功能,以及使它成为Joomla!核心功能中出色新功能的某些因素。
任务调度器允许您,网站所有者,从您已经熟悉并舒适工作的环境中创建基于Web的cron作业。
找到任务调度器
您可以在系统仪表板中找到任务调度器,通过“管理”部分的主菜单访问。
选择要运行的任务
如果您打开任务调度器并选择“新建”,则将显示当前安装的任务插件。然后您可以选择要计划的任务。默认情况下,Joomla 4.1随9个预安装的任务插件一起发货,其中一些很有用。其他则是演示想法。
如果您安装了一些扩展,例如Akeeba Backup,那么它们的任务计划插件也将可供使用。
选择您的任务选项
插件的新任务菜单中可用的选项简化了cron作业设置,并允许您选择cron作业的运行方式。您在基本字段中设置cron作业的运行频率,如果cron作业需要任何额外的设置或选项来运行,您可以在任务参数部分设置它们。高级选项卡是您可以选择cron作业优先级的选项,以及其他您可能想要运行的任务。这也是您告诉插件如何通知您cron作业已运行并成功,或失败的地方。
一旦设置了任务,您始终可以回到相同的设置部分,并更改您未来想要任务运行的方式。
注意
合理安排任务是一个好习惯,尤其是在共享服务器上。当您每周只添加一篇文章时,您真的需要每分钟设置一个任务来调整图片大小吗?如果您正在运行多个任务,请错开cron的启动时间。
示例
- 任务1每周一上午11:30运行
- 任务2每小时运行一次
- 任务3每4小时18分钟运行一次
错开运行任务的时机可以减轻对服务器的需求,从而保持您的网站服务器资源,这样可以让您的访客使用快速网站感到高兴。而不是一个被不必要的后台任务拖慢速度的网站。
您还可以在您的网站不太可能收到许多访客的时间触发任务运行。在大多数人都在家上网的晚上运行任务可能不明智!或者,您可以在您选择的任何时候手动触发任务。
在任务计划程序选项中,您可以选择任务如何触发。您希望它们按任务设置中指定的运行吗?或者,可能是一个在有人访问特定网页时需要运行的任务。您甚至可以设置一个包含任务ID(例如 &ID=1)的Web Cron URL。这意味着您可以通过来自不同网站或应用程序的外部触发器运行相关任务。
许多Joomla扩展开发者会在他们的扩展中包含任务插件,以便您可以选择自动化某些任务。例如,流行的Joomla备份扩展Akeeba,在他们的Pro版本中已经包含了任务插件,用于设置定时任务以运行备份过程。
设计您自己的任务插件
但是,您不仅限于使用已建立的扩展开发者提供的功能。您可以开发自己的插件来触发您希望发生的事件。任务计划程序插件遵循简单的插件语法,允许任务计划程序连接到它们,并按需触发插件的命令。尽管您必须具备扎实的PHP知识才能编写执行任务所需的功能函数。任务计划程序插件还为您提供包括Joomla的新API函数的功能,这为您网站开辟了一个全新的功能层次。
以下是一个基于Joomla新任务计划的插件示例
任务计划程序插件想法
除了由Joomla组件作者开发的任务插件外,Joomla的新任务计划程序还有数百种其他潜在用途。仅受您自己的想象力和需求限制。
以下是一份包含20个想法的列表,以帮助您开始。
- 调整您作者上传的图片大小,以确保您的网站设计保持一致。
- 自动生成您的网站地图以反映新文章。
- 向谷歌发送通知,告知您已发布新内容。
- 每天向您发送网站活动报告。
- 自动化组件更新。
- 自动化部分或完整备份。
- 向您上传到谷歌驱动器的用户/组发送数据。
- 向您发送新用户报告。
- 向您发送提交的新文章/帖子/评论列表。
- 向您发送网站每日日志。
- 然后删除这些日志。
- 将文章作为社交媒体帖子上传到您的社交媒体频道。
- 自动更改网站或管理员的浅色/深色主题。
- 根据节日(圣诞节、复活节、新年等)自动更改网站模板。
- 将备份存档发送到云存储。
- 如果您的服务器上使用node.js的应用程序,则重启Node.js。
- 收集系统健康信息并通过电子邮件发送。
- 将访客数据发送给超级用户。
- 监控和报告托管服务的正常运行时间/停机时间。
- 将相关的新文章发送到不同的用户组。
您将如何使用Joomla的新任务计划程序?
翻译
阅读这篇德语文章: Geplante Aufgaben in Joomla 4.1 - eine neue Funktion
Joomla社区杂志上发布的一些文章代表了作者对特定主题的个人观点或经验,可能与Joomla项目官方立场不符
通过接受,你将访问 https://magazine.joomla.net.cn/ 以外由第三方提供的服务。
评论 5
这很强大,可以等一下再玩。我想感谢Joomla团队为Joomla带来的新功能。
好文章,Joomla一直需要这个功能。
上面放置的简单代码真的非常实用和受欢迎。
嗨,感谢你的有趣文章。但我有一个问题。我做了快速测试,似乎我的任务只有在有人访问网站时才会运行。我如何配置任务在没有访问的情况下运行(例如夜间)。这是cron语法还是其他什么?这需要较新的PHP版本才能工作(即在无访问的情况下运行)吗?
问候
Hakan
嗨,我的计划任务是否只有在我在后端登录时才会运行?或者是我设置错了?
嗨,
与此同时,我进行了一些测试。看起来,只有当后端或前端有活动时,计划任务才会执行。不是网站的纯粹调用,而是例如登录界面的调用。这对我的当前需求来说再合适不过了!真聪明!