fm-labs / cakephp-cron
CakePHP 的 Cron 任务插件
2.2.0
2023-03-27 18:02 UTC
Requires
- php: >=8.0
- cakephp/cakephp: ^4.0
Requires (Dev)
README
CakePHP 的 Cronjob 插件
安装
composer require fm-labs/cakephp-cron
创建自定义 CronTask
namespace App\Cron class MyCronTask implements \Cron\Cron\ICronTask { public execute() { // ... do some magic ... //return new CronTaskResult(false, "Something went wrong") return new CronTaskResult(true, "Success") } }
配置
在你的 Plugin.php
或 bootstrap.php
\Cron\Cron::setConfig('my_cron', [ 'className' => \App\Cron\MyCronTask, 'interval' => 3600, // interval in seconds ])
执行 Cron 任务
通过 Http / 浏览器
# to run a specific task curl -v https://YOUR_BASE_URL/cron/my_cron # to run all tasks curl -v https://YOUR_BASE_URL/cron/all
通过 CLI
# to run a specific task ./cake cron run my_cron # to run all tasks ./cake cron run all
密码保护 Cron 任务执行
# to run all tasks
curl -v https://USER:PASSWORD@YOUR_BASE_URL/cron/all
内部机制
- 任务通过
Cron
类进行静态配置。 CronController
实例化CronManager
CronManager
从Cron
类加载配置的任务,并在调用时- 实例化 cron 任务类(实现
ICronTask
接口) - 触发
Cron.beforeTask
事件 - 执行 cron 任务
- 触发
Cron.afterTask
事件
- 实例化 cron 任务类(实现