### Windows系统任务计划定时执行 Thinkphp 控制器方法
* * * * *
ThinkPHP 5+已经支持 `cli` 的命令模式
#### 新建bat文件
新建立一个txt文件,里面写上如下三行内容:
~~~
D:
cd D:\phpStudy\WWW\workspace\DragonApi
php think scan
~~~
意思是:
1. 当前目录移动到d盘;
2. 当前目录移动到 `D:\phpStudy\WWW\workspace\DragonApi` 文件夹下;
3. 通过PHP 的 CLI 命令执行计划任务。
简单就是:当前目录移动到项目入口文件,绝对路径的php.exe+绝对路径的项目入口文件+参数
前提是,已经把 `php.exe` 添加到了系统的环境变量的 `path` 变量中,这样才可以直接调用php。
把 `txt` 文件改为 `bat` 后缀的可执行文件,单击测试是否把执行了方法。
可以在bat文件最后写个Pause,来看看是否报错;
~~~
I:\项目文件>D:
D:\>cd D:\phpStudy\WWW\workspace\DragonApi
D:\phpStudy\WWW\workspace\DragonApi>pause
请按任意键继续. . .
~~~
或直接写入`“ >c:\smslog.txt ”`把输出的内容导入到一个`txt`文件,运行后查看该文件就知道报错与否,或报哪些错误。
* * * * *
【限制】:计划任务一天最多仅能够运行一次,无法多次循环调用。
#### ThinkPHP实现定时任务
摘要: ThinkPHP实现定时任务
项目服务端框架我选用的是ThinkPHP,由于策划案中有需求要定时刷新指定数据,所以在windows平台我使用微软的计划任务调用bat脚本来执行下面的命令来完成
~~~
php index.php /Home/cli
~~~
即使用PHP的CLI模式调用ThinkPHP的入口文件,然后再传入指定控制器完成相应的数据处理。
/Home/cli 为我新增的名为CliController的控制器,在类中index方法调用相应处理数据的模块即可。
特别注意:在windows平台上执行时在bat脚本中一定要先将当前执行目录切换到index.php所在入口文件目录,然后执行`php.exe index.php /Home/cli`.
- 目录
- 5.0.10环境配置
- 5.0.10控制器模型对象
- 5.0.10模型初始化
- 5.0.10定义数据对象
- 5.0.10创建数据对象data()方法
- 5.0.10创建数据对象-setAttr方法
- 5.0.10创建数据对象__set()方法
- 5.0.10查询数据对象getData()
- 实例
- 5.0.10保存数据save()方法
- 5.0.10保存数据saveAll()
- 5.0.10更新数据save()
- 5.0.10批量更新数据saveAll()
- 5.0.10删除数据delete()
- 5.0.10删除数据destroy()
- 5.0.10traits详解
- ThinkPHP 5.0 速查表
- 注释
- 环境变量配置
- Model分层
- MVC 逻辑服务数据
- Model分层及多对多关联的建立
- 控制器调用逻辑层
- Session
- 子域名session共享
- 系统错误
- 版本错误
- 返回错误
- Token令牌及身份识别
- 关联查询
- 安装
- Git安装
- Composer
- 扩展
- Composer类
- 非Composer类
- 引用第三方库
- 自定义命令行
- 计划任务
- 调试
- 调试模式
- 监听SQL
- 数据库调试
- 单元测试
- 初始化
- 控制器初始化
- 模型初始化
- 数据缓存
- 实战
- 版本升级
- 从V5.0.17升级到V5.0.18