thinkphp 定时执行php文件 php自动执行php文件

Wesley13
• 阅读 667

最近开发短信任务和短信发送功能,用到了定时执行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

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
PHP教程
PHP教程php读取输出其他文件方法人们往往想到出现一些关于访问很缓慢,有白页现象,要是测试环境你也就重启一下PHP的phpfpm进程发现又好了,隔一段时间又出类似的问题,本期我们邀请到了兄弟连PHP教育www.lampbrother.net(https://www.oschina.net/action/GoToLink?urlhttp%3A
Stella981 Stella981
3年前
Centos7.0 mini安装 安装后配置 以及 编译安装PHP7
大家好,我是雷丘,欢迎来到我的博客,这是我第一篇技术博文,如果有错误和不明白的地方,欢迎留言,收到第一时间回复。最近在搞app服务端的程序,开始是thinkphp开发的,后来又使用了php自己开发架构,但是性能都不是很好,当然java,nodejs,python等高大上语言本人也会,但是我还是喜欢php,近期听说php7出来了,性能赶超HHVM,心里小激
Stella981 Stella981
3年前
Laravel、Yii、ThinkPHP性能测试
主流PHP框架性能非权威测试作为一个PHP开发者,而且是初创企业团队的技术开发者,选择开发框架是个很艰难的事情。用ThinkPHP的话,招聘一个刚从培训机构出来的开发者就可以上手了,但是性能和后期代码解耦是个让人头疼的事情。不过很多第三方功能不需要自己写,众多大牛已经给铺好路了。用Laravel的话,传说写起来很爽扩展性也够,但是学习成
Wesley13 Wesley13
3年前
Java和PHP在Web开发方面的比较
比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的比较:一、语言比较  PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java的语法和熟悉一些核心的
Stella981 Stella981
3年前
Spring Boot 与 Kotlin 定时任务(Scheduling Tasks)
在编写SpringBoot应用中会遇到这样的场景,比如:需要定时地发送一些短信、邮件之类的操作,也可能会定时地检查和监控一些标志、参数等。创建定时任务在SpringBoot中编写定时任务是非常简单的事,下面通过实例介绍如何在SpringBoot中创建定时任务,实现每过5秒输出一下当前时间。在SpringBoot的主类中加入
Wesley13 Wesley13
3年前
PHP的超时实现
我们知道PHP可以设置一个脚本执行的超时时间,也就是脚本的执行时间不能超过设置的超时时间.那么PHP是怎么做到这个功能的呢?  其实PHP的超时功能利用了操作系统的定时信号来实现的,在一个请求开始时(php\_request\_startup),PHP便会利用zend\_set\_timeout()接口来设置一个定时器信号,
Stella981 Stella981
3年前
CodeIgniter框架代码解析
    工作中一直用的codeigniter框架,但是很多核心的内容并不了解是怎么运行的。    最近工作进度不是很紧,准备花点时间把codeigniter好好的研究一下。先上index.php文件:<?php//这个文件是入口,后期所有的文件都是在这里执行。/
Stella981 Stella981
3年前
PHP自动测试框架Top 10
对于很多PHP开发新手来说,测试自己编写的代码是一个非常棘手的问题。如果出现问题,他们将不知道下一步该怎么做。花费很长的时间调试PHP代码是一个非常不明智的选择,最好的方法就是在编写应用程序代码之前就写好测试代码。自动化测试可以极大的缓解并改善PHP开发的工作流程,它能帮助开发人员管理大部分任务,使其更专注于开发逻辑的测试代码。本文将为大家介绍PHP自动测试
Wesley13 Wesley13
3年前
PHP调用外部程序的方法
很多情况下需要php调用其他程序如shell命令、shell脚本、可执行程序等等,此时需要使用到诸如exec/system/popen/proc\_open等函数,每种函数有各自适合使用的场景以及需要注意的地方。前提:PHP没有运行在安全模式如果PHP运行在安全模式下,那么在执行外部命令、打开文件、连接数据库、基于HTTP的认证这4
Easter79 Easter79
3年前
Spring如何优雅地发送异步发送通知?
题主应该想问的是在spring框架下如何开发一个“优雅的、异步的”的去执行一个功能吧?至于这个功能是发送一条MQ消息啊还是发送一份邮件、一条短信都可以,重要的是想异步且优雅的执行这些功能。从上面对题目的分析来看的话,题主可以参考一下我的解决办法和思路:1.异步代表着你需要开启一个单独的线程去做这个事情,这个事情做完了,这个线程需要及时的释放,避免