计划任务
自从 4.1 版本(以及 5.x 系列也是如此)以来,Joomla 引入了一个非常有趣的新特性,称为“计划任务”。
尽管这个特性已经存在两年多时间了,但每次我与其他 Joomlers 交流时,我都会发现大多数人都忽视了这个特性的强大功能。
因此,本文的目标是通过对不同的例子/用例进行说明,来揭示一些可能性
- 其中一些是原生插件,可以用于 Joomla 中
- 一些是第三方插件,通常是开源的,并在 Github 上免费提供
- 当然,整个想法是您也可以创建自己的,以满足您的特定需求
关于任务调度器的其他资源
幸运的是,不同的人已经对任务调度器产生了有趣的内容。
所以让我首先感谢并引用他们
- Brendan Hedges 在 2023 年 3 月在当前 Joomla 社区杂志中撰写了一篇介绍
"了解新的 Joomla! 任务调度器"
他在文章的最后提供了 20 个插件想法 - Nicholas Dionysopoulos 在 Joomla 事件上做了几次演讲
- JoomlaDay D.A.CH 2023
- Joomla NXT
- JoomShaper 撰写了一篇关于使用(原生)图像大小检查计划任务的教程: https://www.joomshaper.com/blog/joomla-4-task-scheduler
- TechFry 撰写了一篇关于如何创建自己的任务调度插件的小教程: https://www.techfry.com/joomla/how-to-create-joomla-task-scheduler-plugin
计划任务 - 原生插件
前往您的后台 > 系统 > 计划任务。
点击新建按钮,查看J5中已原生可用的内容。
- 删除操作日志 - 任务
删除几天后的操作日志 - 隐私同意的到期
管理隐私同意的到期 - 轮换日志
定期轮换日志文件。 - 任务 - 会话数据清除
清除过期数据和元数据的任务插件,取决于在全局配置中设置的会话处理器。 - Joomla! 更新通知
此任务定期检查新 Joomla! 版本的可用性。找到新版本时,将向您发送电子邮件,提醒您更新。您可以自定义电子邮件 - 图像大小检查
检查图像,如果大于允许的大小则调整大小。注意:原始文件将被覆盖! - GET 请求
向服务器发送 GET 请求。支持自定义超时和授权头。 - 切换离线
每次运行时切换站点的状态。 - 设置站点在线
每次运行时将站点状态设置为在线。 - 设置站点离线
每次运行时将站点状态设置为离线。 - 全局签入
签入已签出项目。
我最喜欢的是
- 全局签入
天哪,在过去十年中,有多少次最终用户因为他们在前端编辑但某些文章“意外”被“签出”,从而阻止他们打开它们而给我打电话。每次我不得不去后台“签入”所有项目。
现在我可以自动化这个动作,例如每晚3点 - 图像大小检查
在许多情况下,您希望给定的文件夹中图像的最大宽度和高度。即使您让最终用户意识到调整大小的重要性(为了提高访客的性能,但也可以有更小的备份等),人们仍然会“忘记”调整他们的图像。
现在我可以自动调整给定文件夹中的图像大小(例如,我为新闻稿文件夹中的所有图像设置最大宽度为600像素) - GET 请求
对于我的某些网站,我需要通过一个可在给定URL访问的脚本触发一些同步。
GET 请求正是如此...
计划任务 - 第三方插件
一个用于在J4中签入所有内容的任务调度器
如上所述,在 Joomla 5 中有一个原生动态插件来签入所有内容。但如果您的网站仍在运行 J4 呢?
见 https://github.com/zero-24/plg_task_checkin
一个用于自动删除文件的任务调度器
关于仅针对给定文件夹中旧于一定时间段的文件自动删除(而不是其子文件夹)怎么办?
见https://github.com/TLWebdesignNL/Auto-Delete-Files-Task-Scheduler-Plugin
一个用于自动更改文章不同参数的任务调度器
关于能够根据特定日期将文章移动到其他类别(或执行类似操作)怎么办?
任务调度器 - Kick Manage Article
一个在文章基于以下日期比X天旧时,从某些类别移动到另一个类别的任务调度器
- 创建
- 修改
- 发布
- 未发布
见 https://github.com/Kicktemp/plg_task_kickmanagearticle
任务计划程序 - CCC 时间扭曲(即将推出)
使用此插件,您可以
- 根据特定日期将文章移动到不同的类别
- 更改发布状态
- 调整访问级别
- ...
如果您使用 Joomla 文章来显示事件,这尤其实用,例如,使新闻仅在 x 天内对封闭圈可见,并在一段时间后公开。
注意:除了常用的日期类型之外,您还可以在条件中使用自定义字段类型为日期,这很方便。
查看 https://coolcat-campus.com/en/
重置点击次数的任务计划程序
在一个项目中,我需要显示“最受欢迎的电影”,我想在每个月的第一天重置点击次数。
查看 https://github.com/woluweb/plg_task_resethits
同步自定义字段与某些外部 Web 服务的任务计划程序
在另一个项目中,我需要将 300 篇文章的 20 个自定义字段的值与来自某些外部 Web 服务的最新数据同步。
让我们举一个实际的例子: social.brussels 是布鲁塞尔所有社会服务和协会的目录。您可以访问每个组织的详细信息
- 直接从他们的网站(供人类使用):social.brussels/organisation/13219
- 以 json 格式(供程序使用):social.brussels/rest/organisation/13219
在 Joomla 网站上,有数百篇文章具有地址、电话号码等自定义字段。
所以,想法是自动化外部源和我们的网站之间的每日同步,这样最终用户就不必每个月花费数小时检查信息是否过时了...
查看 https://github.com/dgrammatiko/plg_task_json2cf
随扩展程序而来的任务计划程序
如来源所述,一些扩展程序提供自己的任务计划程序。示例
- 备份任务
akee.ba/scheduledtasks - PHP 文件扫描器
https://www.akeeba.com/documentation/admin-tools-joomla/php-file-scanner-joomlascheduled.html
创建自己的计划任务(并分享)!
如您从上述示例中看到的,一切皆有可能:对于每个需求,您都可以发明自己的计划任务。
这将是未来几个月在 Joomla 社区杂志中另一个很好的主题:为计划任务开发不同的使用案例,例如
- 将您的网站与 Zapier 或其他类似服务连接
- 根据某些条件修改某些自定义字段的值
- 每 n 个月重置(一些)用户的密码
- 进行一些数据库工作(优化等)
- 检查和通知更新
- 检查系统修改(PHP 版本、执行时间等)
- 与您的时事通讯扩展程序交互
- 与您的电子商务扩展程序交互(弃购物车等)
- 发送推送通知(OneSignal 等)
- 发送短信(Twillio 等)
- ...
所以,请在下面的评论中分享 您的想法/建议的计划任务!
如果您已经编写了一个,请分享链接,这样每个人都可以享受...
在 Joomla 社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能不与 Joomla 项目的官方立场一致
通过接受,您将访问由 https://magazine.joomla.net.cn/ 外部的第三方提供的服务
评论 2
在Essen的JoomlaCamp 24上,我遇到了Claudia,她分享了自己的Schuleled任务: https://github.com/coweb01/Master-task_wbcdorfapp
它读取外部API(一种工作板)并为给定类别的Joomla文章提供内容。
官方描述:Apicodo Dorfapp的API接口。任务插件,通过APICODO API进行时间控制的数据导入。在插件中必须选择一个类别,数据记录可以传输到该类别。每次新请求时,都会删除该类别中的所有数据记录并重新写入。
昨天在美国JoomlaDay的场合,发布了包含10多个第三方计划任务的本文更新版本。
查看 https://slides.woluweb.be/tasks/tasks.html