elstc/cakephp-cron-jobs

CakePHP 的定时任务运行器

安装次数: 5,016

依赖项: 0

建议者: 0

安全性: 0

星标: 8

关注者: 3

分支: 0

开放问题: 0

类型:cakephp-plugin

v3.0.0 2024-05-01 09:28 UTC

This package is auto-updated.

Last update: 2024-08-31 00:35:39 UTC


README

Software License Build Status Codecov Latest Stable Version

此插件是简单的包装 crunzphp/crunz

版本映射

安装

您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。

安装 composer 包的推荐方法是

composer require elstc/cakephp-cron-jobs

加载插件

通过在您的项目的 src/Application.php 文件中添加以下语句来加载插件:

$this->addPlugin('Elastic/CronJobs');

生成配置文件

运行 bin/cake CronJobs publish:config 命令。该命令将在项目的 ROOT 目录中生成 crunz.yml

您可以使用 crunz.yml 进行配置,也请参阅 https://github.com/crunzphp/crunz#configuration

我建议将 source: 更改为

source: vendor/elstc/cakephp-cron-jobs/tasks

这使得在使用 schedule:runschedule:list 命令时无需指定目录。

注册到 cron

添加您的 cron 调度,使用 crontab -e

* * * * * cd {YOUR-APP-DIR}; bin/cake CronJobs schedule:run vendor/elstc/cakephp-cron-jobs/tasks/

用法

您可以从 CakePHP 事件系统中注册一个调度任务。

在 bootstrap_cli.php 中注册到作业调度器,使用 cakephp 事件系统

use Cake\Event\Event;
use Cake\Event\EventManager;

EventManager::instance()->on('CronJobs.buildSchedule', static function (Event $event) {
    /** @type \Elastic\CronJobs\Schedule\CakeSchedule $schedule */
    $schedule = $event->getSubject();
    
    // Add scheduled command
    $schedule->run('touch tmp/crunz-time-from-event')
        ->description('your job description')
        ->everyDay()
        ->at('09:00');

    // Add scheduled cake's command
    // such as `bin/cake your_command comannd_arg1 --command-option --some-opt=value`
    $schedule->runCommand('your_command', [
            'comannd_arg1',
            '--command-option',
            '--some-opt' => 'value',
        ])
        ->description('your job description')
        ->cron('0 3 * * *');
});

\Elastic\CronJobs\Schedule\CakeSchedule\Crunz\Schedule 包装类。也请参阅:crunzphp/crunz README

显示已计划的任务

bin/cake CronJobs schedule:list vendor/elstc/cakephp-cron-jobs/tasks/

从 CakePHP 3 升级

larvery/crunz 已从 1.12 升级到 2.x(<= PHP 7.3),3.x(>= PHP 7.4),也请参阅 crunz 的升级指南。

crunz/UPGRADE.md 在 master · crunzphp/crunz