定时任务

定时任务是一次性执行,执行完就结束的任务处理类开发。

使用场景

如:清理数据、统计数据等。

需使用 crontab 等工具定时触发命令。

开发目录

├── console                                             Console应用开发目录
│   ├── crontab                                         定时任务模块
│   │   ├── command                                     Console应用控制器目录
│   │   ├── config                                      配置目录
│   │   ├── library                                     类库目录
│   │   ├── mix-crontab                                 定时任务入口文件
│   │   └── runtime                                     运行目录 (不可更改)

入口文件

执行完 install.sh 后,入口文件可在任意位置执行。

mix-crontab <路由> [-option1 --option2 --option3=value ...]

控制器范例

<?php

namespace console\crontab\command;

use mix\console\Controller;

/**
 * 默认控制器
 * @author 刘健 <coder.liu@qq.com>
 */
class IndexController extends Controller
{

    // 是否后台运行
    protected $d = false;

    // 执行任务
    public function actionIndex()
    {
        // 蜕变为守护进程
        if ($this->d) {
            self::daemon();
        }
        // 模型内使用短连接版本的数据库组件,计划任务都是一次性执行
        $tableModel = new \console\common\model\TableModel();
        // 执行业务代码
        // ...
        // 响应
        return 'SUCCESS' . PHP_EOL;
    }

}

启动与查看

在命令行使用以下命令启动。

mix-crontab index/index

启动后使用如下 Linux 命令管理进程。

// 查找进程
ps -ef | grep index

// 结束进程
kill <PID>