thinkphp 定时执行php文件 php自动执行php文件
2015-06-22 14:07
459 查看
最近开发短信任务和短信发送功能,用到了定时执行php这方面:和大家分享一下:
(个人笔记,写的不好,海涵海涵,看不懂的话可以留言,但是我一般都能及时回复,其他网上有很多这样的教程,大家一搜就满地)
我用的是thinkphp开发的程序,程序已经开发好了,程序有个分批定时发送功能,每隔一段时间查找一下数据库,然后把符合条件的短信任务给发送出去,
实现思路如下:
通过win的“任务”功能来定时执行一个bat文件,bat文件会调用php.exe文件,php.exe可以传递参数 指定执行哪个类和方法
方法如下:
一,thinkphp开启cli支持
1、tp正好支持cli命令模式,手册的路径为13.7.4
如果是用的其他框架不支持cli,那么只能直接写程序了,其实就是写面向过程的最基础的php代码。
2、在入口文件下开启命令,加入一句
define('MODE_NAME', 'cli');
网站一般还有可以通过网页访问的模块,所以可以新建立一个cli的入口如index_cli.php,这样其他的模块还可以通过正常的入口进入。有的手册上写的开始cli定义的是define(' THINK_MODE ', 'cli'); ,可能是版本不同,注意这点。
二、新建立bat文件
新建立一个txt文件,里面写上如下三行内容:
d:
cd D:\workspace\dzx2
php.exe D:\workspace\dzx2\index_cli.php Sms/sendjob>c:\smslog.txt
意思以此是:当前目录移动到d盘,当前目录移动到D:\workspace\dzx2文件夹下(我的项目入口文件),通过绝对路径的php.exe 空格输入绝对的项目cli入口文件,后面空格+参数(我已经把php.exe添加到了系统的环境变量的path变量中,所以只写了php.exe)
简单就是:当前目录移动到项目入口文件,绝对路径的php.exe+绝对路径的项目入口文件+参数
吧txt文件改为bat后缀的可执行文件,单击测试是否把执行了方法
(可以在bat文件最后写个Pause,来看看是否报错,或直接写入“ >c:\smslog.txt ”吧输出的内容导入到一个txt文件,运行后查看该文件就知道报错与否或报哪些错误)
三、新建任务
win下是 控制面板——》管理程序——》任务计划程序
右击 任务计划程序库 -》新建任务
运行的账户一定要有权限
触发器-》新建 选择频率次数等功能
操作-》新建 选 启动程序 在下面找到自己写的bat文件
其他的可以自己看看
建立任务后,点程序运行一下,看看运行的时间和结果还有自己程序所做的事做了没有,
有错的话注意的是包含所选用户权限、各个路径是否正确、程序是否正确
所以一般做是首先,保证通过url地址访问程序运行ok,然后,是单击bat文件程序运行ok,再然后是任务计划运行ok
参考地址:
(个人笔记,写的不好,海涵海涵,看不懂的话可以留言,但是我一般都能及时回复,其他网上有很多这样的教程,大家一搜就满地)
我用的是thinkphp开发的程序,程序已经开发好了,程序有个分批定时发送功能,每隔一段时间查找一下数据库,然后把符合条件的短信任务给发送出去,
实现思路如下:
通过win的“任务”功能来定时执行一个bat文件,bat文件会调用php.exe文件,php.exe可以传递参数 指定执行哪个类和方法
方法如下:
一,thinkphp开启cli支持
1、tp正好支持cli命令模式,手册的路径为13.7.4
如果是用的其他框架不支持cli,那么只能直接写程序了,其实就是写面向过程的最基础的php代码。
2、在入口文件下开启命令,加入一句
define('MODE_NAME', 'cli');
网站一般还有可以通过网页访问的模块,所以可以新建立一个cli的入口如index_cli.php,这样其他的模块还可以通过正常的入口进入。有的手册上写的开始cli定义的是define(' THINK_MODE ', 'cli'); ,可能是版本不同,注意这点。
二、新建立bat文件
新建立一个txt文件,里面写上如下三行内容:
d:
cd D:\workspace\dzx2
php.exe D:\workspace\dzx2\index_cli.php Sms/sendjob>c:\smslog.txt
意思以此是:当前目录移动到d盘,当前目录移动到D:\workspace\dzx2文件夹下(我的项目入口文件),通过绝对路径的php.exe 空格输入绝对的项目cli入口文件,后面空格+参数(我已经把php.exe添加到了系统的环境变量的path变量中,所以只写了php.exe)
简单就是:当前目录移动到项目入口文件,绝对路径的php.exe+绝对路径的项目入口文件+参数
吧txt文件改为bat后缀的可执行文件,单击测试是否把执行了方法
(可以在bat文件最后写个Pause,来看看是否报错,或直接写入“ >c:\smslog.txt ”吧输出的内容导入到一个txt文件,运行后查看该文件就知道报错与否或报哪些错误)
三、新建任务
win下是 控制面板——》管理程序——》任务计划程序
右击 任务计划程序库 -》新建任务
运行的账户一定要有权限
触发器-》新建 选择频率次数等功能
操作-》新建 选 启动程序 在下面找到自己写的bat文件
其他的可以自己看看
建立任务后,点程序运行一下,看看运行的时间和结果还有自己程序所做的事做了没有,
有错的话注意的是包含所选用户权限、各个路径是否正确、程序是否正确
所以一般做是首先,保证通过url地址访问程序运行ok,然后,是单击bat文件程序运行ok,再然后是任务计划运行ok
参考地址:
thinkphp 定时执行php文件 php自动执行php文件
http://blog.sina.com.cn/s/blog_4acbd39c01011sme.html相关文章推荐
- 基于PHP的cURL快速入门
- yii关闭session
- YIi debug 方法
- php通过baihui网API实现读取word文档并展示
- PHP读取汉字的点阵数据
- 一步步搭建自己的轻量级MVCphp框架-(二)一个国产轻量级框架Amysql源码分析(1)
- php读取der格式证书乱码解决方法
- php中正则表达式的匹配和数据验证总结
- PHP aes (ecb)解密后乱码问题
- CTP: 接收心跳超时Bug
- PHP调用数据库数据乱码问题
- windows7下安装php的imagick和imagemagick扩展
- DB2 存储过程 - 利用 dbms_output.put_line 输出至屏幕
- PHP 标记风格
- PHP 能做什么?
- PHP 扩展库
- AMH4.2 Ftp账号路径修改设置
- PHP aes (ecb)解密后乱码问题
- php读取der格式证书乱码解决方法
- PHP读取汉字的点阵数据