webman-tech / crontab-task
Webman plugin webman-tech/crontab-task
Installs: 1 570
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- php: >=7.4
- workerman/crontab: ^1.0
Requires (Dev)
- monolog/monolog: >=2.0
- webman/console: ^1.2
- workerman/webman-framework: ^1.5
README
workerman/crontab
在 webman 中更加便捷的使用
安装
composer require webman-tech/crontab-task
特点
- 基于 workerman/crontab
- 支持单进程单个定时任务,和单进程多定时任务快捷配置(解决webman默认的单进程下起多个定时任务阻塞的问题),见配置 process.php
- 定时任务常规 log 支持(start/end/exception),见配置 app.php
使用
- 创建 Task
<?php namespace app\crontab\tasks; use WebmanTech\CrontabTask\BaseTask; class SampleTask extends BaseTask { /** * @inheritDoc */ public function handle() { // 实际业务 echo date('Y-m-d H:i:s') . PHP_EOL; } }
- 添加到 process
配置:config/plugin/webman-tech/crontab-task/process.php
<?php return (new Schedule()) // 添加单个定时任务,独立进程 ->addTask('task1', '*/1 * * * * *', \WebmanTech\CrontabTask\Tasks\SampleTask::class) // 添加多个定时任务,在同个进程中(注意会存在阻塞) ->addTasks('task2', [ ['*/1 * * * * *', \WebmanTech\CrontabTask\Tasks\SampleTask::class], ['*/1 * * * * *', \WebmanTech\CrontabTask\Tasks\SampleTask::class], ]) ->buildProcesses();
命令
php webman crontab-task:list
: 列出所有 crontab 定时任务
php webman make:crontab-task [name]
: 创建 crontab task