为什么我的卷发请求从未停止


Why my curl request never stop?

我想在执行php文件的同时获得两年的数据。但问题是,卷曲请求从未停止过一次,如果我把它放在上就结束了

curl_setopt($ch, CURLOPT_TIMEOUT, 30);

这是可行的,但我要等30秒,在导航器中,我要等几秒才能执行文件,为什么我的脚本永远不会停止?

代码:

<?php
  $dateDeb = '2010-07-23';
  $dateFin = '2012-07-23';
  $debut_mois = 07;
  $debut_jour = 23;
  $debut_annee = 2010;
  $fin_mois = 07;
  $fin_jour = 23;
  $fin_annee = 2012;
$dates=array();
   $debut_date = mktime(0, 0, 0, $debut_mois, $debut_jour, $debut_annee);
   $fin_date = mktime(0, 0, 0, $fin_mois, $fin_jour, $fin_annee);
    for($i = $debut_date; $i <= $fin_date; $i+=86400)
    {
            $dates[]=date("Y-m-d",$i);
    }

foreach($dates as $date){
    $cron1='http://ndd.com/admin/api/xiti/bot-lien_sponsorisees/'.$date;
    $cron2='http://ndd.com/admin/api/xiti/bot-affiliation/'.$date;
    $cron3='http://ndd.com/admin/api/xiti/bot-analytics/'.$date;
    echo $date." : EN COURS ... ";
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $cron1); 
    curl_setopt($ch, CURLOPT_USERPWD, 'user:pass');
   // curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_exec($ch); 
    curl_close($ch);

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $cron2); 
    curl_setopt($ch, CURLOPT_USERPWD, 'user:pass');
    //curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_exec($ch); 
    curl_close($ch);
    echo $date." : OK 'n";
    }

它永远不会停止,因为你循环了2年的日期,即730天。

因此,您发出了730个CURL命令,超时时间相当于730*30=21900秒的最大处理时间。

事实上,我看到你发出了两个CURL命令,所以21900*2=43800最长处理秒。

你有两年的工作时间。每一个请求都会发出一个新的请求,而新请求对旧请求或这些请求花费的时间一无所知。如果您想在一定时间后停止执行,可以使用set_time_limit:

set_time_limit(30);