最近的一个项目需要在服务器上每1分钟执行一次控制器。 我在网上找到了,可以使用计划任务来执行。 我也走了很多弯路。 Linux稍微简单一些,因为测试服务器是Linux。 我用的是windows server 2016,所以这两种形式正好都用了。
简单说明一下我的需求,我需要服务器定时执行一个URL,因为我已经把方法写在控制器里了,而且整个URL使用了tp框架,所以网上写的很多代码可以模仿,但是不能可以直接使用。
一、linux
crond是linux用来定时执行程序的命令。 具体使用方法可以在百度或者其他详细文档中找到。 这里不详细解释,只解释如何通过crond来做定时任务。
添加任务有2种方式:
1、在命令行输入:crontab -e 然后添加相应的任务,wq保存退出。
2、直接编辑/etc/crontab文件,即vi /etc/crontab,添加相应的任务。
喜欢:
* * * * * 睡眠 1; /usr/bin/curl
使用curl 每分钟执行此链接
小时 日 月 周 顺序
0-59 0-23 1-31 1-12 0-6 命令(取值范围,0表示周末通常对应一个任务)
二、windows服务器
第一步,编写自己的方式,php文件命令行执行php,可以使用test.php代码进行测试,如下:
如果你像我一样使用thinkphp,Controller中的方法和其他的一样命令行执行php,当然你可以添加一个
功能测试(){
$fp = fopen("test.txt", "a+");
fwrite($fp, date("Ymd H:i:s") . " 成功成功!n");
fclose($fp);
第二步:编写bat文件