Heim > Backend-Entwicklung > PHP-Tutorial > 如何使PHP定时执行任务(附代码)

如何使PHP定时执行任务(附代码)

PHPz
Freigeben: 2018-10-23 13:53:50
nach vorne
1461 Leute haben es durchsucht

这篇文章主要介绍了如何使PHP定时执行任务,有一定的参考价值,感兴趣的朋友可以看看,希望对你有所帮助!

使用PHP定时执行某些任务的话, 可以有以下两个方法:

1. linux下crontab, windows下计划任务

2. 使用php的相关函数

<span style="font-size: 14px;">set_time_limit(0);<br>ignore_user_abort(true);<br>//这里写一个死循环<br></span>
Nach dem Login kopieren

第一个方法是最常见的, 如果php服务器上没有权限去crontab, 也可以找一个自己的机器定期crontab去请求服务器

第二种比较不靠谱, Apache重启了就得重新访问,  fastcgi倒是会好一点。

示例:创建index.php和test.txt,功能是往test.txt里每秒覆盖写一个数字,该数字递增。index.php代码如下:

<span style="font-size: 14px;"><?php<br>ignore_user_abort(true);<br>$num=0;<br>set_time_limit(0);<br>//ini_set('max_execution_time',0);   用这句也行,效果和set_time_limit(0)一样<br>do{<br>	file_put_contents('./test.txt',$num);<br>	$num++;<br>	sleep(1);<br>}while(true);<br></span>
Nach dem Login kopieren

关闭浏览器后,发现依然能执行脚本,该数字依旧递增。

原因是这关键的两个函数在起作用:

ignore_user_abort(true)无论客户端是否关闭浏览器,下面的代码都将得到执行。

set_time_limit(0) 取消php文件的执行时间,如果没有这个函数的话,默认php的执行时间是30秒,也就是说30秒后,这个文件就say goodbay了。

如果不用这两个函数,则需要修改php.ini,找到max_execution_time配置项,将30改为0,设置为0就是永不过期。再重启服务器即可。

更多相关教程请访问   php编程从入门到精通全套视频教程

Verwandte Etiketten:
php
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage