the new time-php framework
timePHP是一个基于php cli开发的定时脚本框架,可以实现简单的配置,自己的逻辑代码纯php无需写shell脚本 易管理,易开发,支持自定义多进程,时间周期可以按(月日,星期几,天,小时,分钟,秒)来执行,等功能。 简单的配置一下就可以根据需求开发自己的逻辑代码【此框架暂只支持liunx系统】。, (*1)
``` python [root@FX-DEBUG taskphp]# php ./start.php start, (*2)
----------------------- timePHP ----------------------------- timePHP version:1.0 PHP version:5.6.9 ------------------------ timePHP ------------------------------- pid name status 14524 backup [OK] 14525 clearmeesage [OK], (*3)
## 查看任务列表 ``` python [root@FX-DEBUG taskphp]# php ./start.php status ----------------------- timePHP ----------------------------- timePHP version:1.0 PHP version:5.6.9 ------------------------ timePHP ------------------------------- pid name status 14524 backup [OK] 14525 clearmeesage [OK] 14526 clearrom [OK] -----------------------------------------------------------
``` python [root@FX-DEBUG taskphp]# php ./start.php kill, (*4)
[退出成功], (*5)
## 目录结构
./start.php 入口启动文件
./app 任务主目录
./app/任务名 独立任务目录
./app/任务名/config.php 该任务的配置文件
./app/任务名/function.php 该任务的函数
./app/任务名/任务名Task.class.php 任务入口文件
./app/任务名/Demo.php 自定义封装类可以不要
./extend 第三方插件目录
./timephp 框架核心文件, (*6)
## 配置文件规范 ``` php * @copyright TimePHP * @license https://github.com/qq8044023/timePHP * */ return [ "TASK"=>array(//任务相关配置【必填项】 "name"=>"backup",//进程名 "count"=>1,//进程数 默认为1,如果要开启多进程 请开启redis 使用队列 "status"=>1,//1 启动 -1停止 "processType"=>false,//默认false (该选项只有系统进程才会用到) /** * 格式 * m 1,3,5,12,25 12:20:00 每个月的几号几点执行 * w 1,3,5 12:20:00 一周的1,3,5 12:20:00执行一次 0是星期天 * d 12:20:00 每天12:20:00执行一次 * h 2 每2小时执行一次 * i 2 每2分钟执行一次 * s 3 每3秒执行一次 * */ "timeType"=>"s",//时间类型 m号 w周 d天 h小时 i分钟 s秒 "timePeriod"=>"5",//时间 ), /** 数据库连接配置 */ 'DB_TYPE' => "mysql", // 数据库类型 'DB_HOST' => "127.0.0.1", // 服务器地址 'DB_NAME' => "demo", // 数据库名 'DB_USER' => "root", // 用户名 'DB_PWD' => "root", // 密码 'DB_PORT' => 3306, // 端口 'DB_PREFIX' => "tourism_", // 数据库表前缀 'DB_PARAMS'=>array('persist'=>true),//是否支持长连接 true是 false 否 ]; ?>
``` php namespace app\backup; use lib\Task; use lib\common\SystemFun; /** * @author 村长8044023@qq.com * @copyright TimePHP * @license https://github.com/qq8044023/timePHP */ class backupTask extends Task{ public function run(){ //初始化数据库配置信息 SystemFun::Config($this->getConfig()); //实例化模型 和 thinkphp的M()方法一样,操作也是一样 $model=SystemFun::model("gameActivity"); //执行查询一条数据 $res=$model->where(array("id"=>1))->find(); var_dump($res); } }, (*7)
## 获取配置文件信息 ``` php $config=$this->getConfig(); var_dump($config);
``` php 如: * @copyright TimePHP * @license https://github.com/qq8044023/timePHP */ class clearmeesageTask extends Task{ public function run(){ SystemFun::import("extend@PHPMailer@PHPMailerAutoload"); $mail = new \PHPMailer(); //PHPMailer对象 } } ?>, (*8)
```, (*9)