Heim > Backend-Entwicklung > PHP-Tutorial > 请教一个 PHP 定时执行任务的问题!

请教一个 PHP 定时执行任务的问题!

WBOY
Freigeben: 2016-06-23 14:05:38
Original
890 Leute haben es durchsucht

ignore_user_abort(); // 函数设置与客户机断开是否会终止脚本的执行
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=5;// 每隔5s运行

do{
$fp  =  @fopen("test.txt",  "a+");    
fwrite($fp,  date("Y-m-d  H:i:s")  .  "  让PHP定时运行吧!\n");    
fclose($fp);   
sleep($interval);// 等待5s
// 设定定时任务终止条件
if (file_exists('lock.txt'))
{
break;
}
}while(true);
 
?>

比如实现了一个这样的定时执行任务!  但是有个问题,如果被多次调用该页面那么将会启动多个任务! 请教高手有什么办法处理这个情况吗?


回复讨论(解决方案)

cron定时执行该文件(每分钟执行一次), * * * * * php /var/www/html/scriptname.php >/dev/null 2>&1

set_time_limit(60);
if(php_sapi_name() == 'cli'){ //只能由服务器端才可以执行
   // 主代码部分
}

或者把文件放到html目录以外 
cron定时执行该文件(每分钟执行一次), * * * * * php /var/user/admin/scriptname.php >/dev/null 2>&1

set_time_limit(60);
// 主代码部分



你可以添加一个计划任务控制表,表明正在运行中OR已经运行,根据不同的情况来决定是否运行任务

可以在服务器上添加一个标志文件。判断文件的存在,文件存在表示任务在进行,不存在则没有进行

Quelle:php.cn
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