Это инструмент для управления периодическими задачами, основанный на Yii2.
Он не только поддерживает Yii2, но и может быть использован как отдельный компонент или микрофреймворк.
Рекомендуется установить кодировку консоли в UTF-8.
composer require godv/yii2-crontab dev-master
composer create-project godv/yii2-crontab-basic crontab-basic
В crontab службы Linux добавьте:
* * * * * /path/yii2-crontab/yii crontab/run
Файл config/console.php
:
<?php
'controllerMap' => [
'crontab' => [
'class' => 'CrontabConsole\controllers\CrontabController',
'driver' => [
'class' => 'CrontabConsole\drivers\File',
'tasks' => [
['crontab_str' => '* * * * *', 'route' => 'example/minute'],
['crontab_str' => '0 */1 * * *', 'route' => 'example/hours'],
]
// 'class' => 'CrontabConsole\drivers\Mysql',
// 'dsn' => 'mysql:host=localhost;dbname=test',
// 'username' => 'root',
// 'password' => 'root',
// 'charset' => 'utf8',
],
],
],
Файл commands/ExampleController.php
:
<?php
namespace app\commands;
use Yii;
use yii\console\Controller;
use yii\console\ExitCode;
/**
* 定时任务调度控制器
*/
class ExampleController extends Controller {
/**
* 测试每分钟运行
*/
public function actionMinute() {
echo 'run example/minute 每分钟运行一次',"\n";
return ExitCode::OK;
}
/**
* 测试每小时运行
*/
public function actionHours() {
echo 'run example/hours 每小时运行一次',"\n";
return ExitCode::OK;
}
}
Пример вывода:
.----------------.-------------.--------------.------------------.--------.------------.--------------.
| route | crontab_str | last_rundate | next_rundate | status | exec_count | exec_time(s) |
:----------------+-------------+--------------+------------------+--------+------------+--------------:
| example/minute | * * * * * | | 2020-10-26 17:56 | -- | 0 | 0 |
| example/hours | 0 */1 * * * | | 2020-10-26 18:00 | -- | 0 | 0 |
'----------------'-------------'--------------'------------------'--------'------------'--------------'
crontab/run
— запуск задачи.crontab/drun
— режим отладки для запуска.crontab/status
— мониторинг состояния задачи.crontab/add
— добавление задачи.crontab/del
— удаление задачи.crontab/refrsh
— обновление конфигурации задачи и её состояния.run | drun | add | del | refrsh | |
---|---|---|---|---|---|
File | √ | √ | × | × | √ |
Mysql | √ | √ | √ | √ | × |
WWW\github\yii2-crontab>php yii crontab/run
Directory of WWW\github\yii2-crontab\example\runtime\crontab
2020/10/26 18:06 0 2020-10-26-error.log --任务错误记录
2020/10/26 18:06 41 2020-10-26-output.log --任务输出记录
2020/10/26 18:06 631 crontab.data --用于存储任务运行状态
Команда crontab/run
запускает задачу и перенаправляет вывод в консоль.
runtime/crontab/xxxx-xx-xx-error.log
— файл с ошибками задачи.runtime/crontab/xxxx-xx-xx-output.log
— файл с выводом задачи.runtime/crontab/crontab.data
— данные о состоянии задачи (только для режима File).WWW\github\yii2-crontab\example>php yii crontab/drun
run example/minute 每分钟运行一次
.----------------.-------------.------------------.------------------.--------.------------.--------------.
| route | crontab_str | last_rundate | next_rundate | status | exec_count | exec_time(s) |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )