电脑安全

您当前的位置:主页 > 电脑安全 >

php怎么写定时任务?php如何定时执行任务-网络编

来源:[db:来源]标题:   脚本    编辑:电脑技术全能网 时间:2019-09-19 18:30

原标题:php怎么写定时任务?php如何定时执行任务-网络编
   PHP的完成决议了它没有Java和.Net这类AppServer的观点, 而http协定是一个无状况的协定, php只能被用户触发, 被挪用, 挪用后会主动加入内存, 没有常驻内存, 就没有方法正确的准时处置那末, 假如须要用PHP准时履行某些义务的话, 能够有以下俩个方式,上面就让咱们来看看吧。 PHP的完成决议了它没有Java和.Net这类AppServer的观点, 而http协定是一个无状况的协定, php只能被用户触发, 被挪用, 挪用后会主动加入内存, 没有常驻内存, 就没有方法正确的准时处置那末, 假如须要用PHP准时履行某些义务的话, 能够有以下俩个方式:Linux下crontab, windows下打算义务找个被频仍挪用的网页, 外面加上一个检测代码set_time_limit(0);ignore_user_abort(true);死轮回第一个方式是最罕见的, 假如php效劳器上没有权限去crontab, 也能够找一个本人的呆板按期crontab去恳求效劳器第二种方式, 论坛上准时清算新帖基础上就是这么完成的, 假如人气不旺的话, 能够斟酌去其余火爆点的论坛外面发个图片, 挪用本人的php来完成一个trigger就好了。 Discuz!是推断在00:00以后,第一个履行者去履行的。第三种比拟不靠谱, Apache重启了就得从新拜访, fastcgi却是会好一点。上面的这段代码,能够在以后文件夹下,天生一个test.txt,并每隔20秒,往外面写入一个时光戳,不管客户端能否封闭扫瞄器。<?php ignore_user_abort(true);set_time_limit(0);functionwrite_txt() {if(!file_exists(”test.txt”)){$fp=fopen(”test.txt”,”wb”);fclose($fp);}$str=file_get_contents(’test.txt’);$str.= “/r/n”.date(”H:i:s”);$fp=fopen(”test.txt”,”wb”);fwrite($fp,$str);fclose($fp);}functiondo_cron(){usleep(20000000);write_txt();}while(1){do_cron();}要害的两个函数:ignore_user_abort(true),这个函数的感化是,不管客户端能否封闭扫瞄器,上面的代码都将失掉履行。set_time_limit(0),这个函数的感化是,撤消php文件的履行时光,假如没有这个函数的话,默许php的履行时光是30秒,也就是说30秒后,这个文件就say goodbay了。别的usleep在PHP5.0以后,支撑windows操纵体系。咱们在做一个php 邮件发送成绩是经常会碰见如许的成绩,就是用户定阅一些材料须要准时发送到用户的邮箱中去。去网上搜寻了一下,发觉在如许的文章未几,本文先容了一种用PHP完成的方式,笔者用PHP的时光不长,欢送各人PP。1、要完成准时发送,重要处理成绩是准时。  咱们在写顺序时须要加个甚么if 某个时光=某个时光则发送,但是要完成这个进程,面对的成绩是,咱们要履行这个页面才干发送。以是重要处理的成绩是怎样到时让效劳器准时履行这个页面,如许完成起来似乎比拟艰苦。2、我打开PHP手册,找到了PHP 的下令行形式这一章,发觉能处理这一成绩,倡议各人假如想用这个方式的话先看看这一章。3、处理方式:1、在 Windows 平台下您能够将cli/php.exe 和 .php 文件的双击属性相干联,您也能够编写一个批处置文件来用 PHP 履行剧本。咱们把写好的顺序放在一个名目下如 E:/web/mail.php而后写一个windows批处置文件内容以下。@D:/php/cli/php.exe E:/web/mail.php >d:/php/cli/sendmail.logPause谁人D:/php/cli/php.exe是我的PHP装置文件地点名目。Php.exe就是windows PHP下令行形式的顺序。好的,咱们保留这个文件为mail.bat而后的windows中的打算义务中增加一个义务,让操纵体系在某个时光来运转这个批处置文件。2、假如您应用 Unix 体系,您须要在您的 PHP 剧本的最后面加上一行特别的代码,使得它可能被履行,如许体系就能晓得用甚么样的顺序要运转该剧本。为 Unix 体系增添的第一行代码不会影响该剧本在Windows 下的运转,因而您也能够用该方式编写跨平台的剧本顺序。ignore_user_abort();//关掉扫瞄器,PHP剧本也能够持续履行.set_time_limit(0);//经过set_time_limit(0)能够让顺序无穷制的履行上来$interval=60*30;//每隔半小时运转do{//这里是你要履行的代码sleep($interval);//等候5分钟}while(true);

上一篇:sql server 千万级数据处理分页-网络编程

下一篇:没有了