전 세계 기상 온라인에서 위도 경도에 따라 파도 높이, 파도 지속 시간 및 수온을 검색하는 PHP 스크립트를 실행하고 있습니다. 그러나 제 호스트는 10 초의 스크립트 실행만을 허용합니다. 내 호스트의 php_ini에 액세스 할 수 없기 때문에 커뮤니티에서 스크립트를 최적화하는 데 아이디어/조언을주기 위해 문제를 일으킬 수 있는지 궁금합니다. 이 스크립트는 35 개의 레코드 만 업데이트합니다. 총 100 개의 레코드가 있습니다. 저는 세계 날씨 API에서 많은 데이터를 던지고 있다고 생각합니다. 최적화하기 전에RSS 피드를 검색하는 PHP 스크립트, 시간 초과 문제
$connection=mysql_connect('myhost', 'user', 'post');
if (!$connection) { die('Not connected : ' . mysql_error());}
$db_selected = mysql_select_db('ilovebigbutts', $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// Here I am selecting the lat long and pri_id from table
$query = "SELECT * FROM beaches";
$result = mysql_query($query);
if (!$result) {
die("Invalid query: " . mysql_error());
}
while ($row = @mysql_fetch_assoc($result)) {
$id = $row["pri_id"];
$lat = $row["lat"];
$lng = $row["lng"];
$feed_url = "http://free.worldweatheronline.com/feed/marine.ashx? key=xxxxxxxxxxxx&q=".$lat.",".$lng."&format=xml";
$xmlString = file_get_contents($feed_url);
$xml = new SimpleXMLElement($xmlString);
$items = $xml->xpath('weather/hourly');
$closeItems = array();
$new_array = array();
foreach($items as &$item)
{
$waves = $item->swellHeight_m;
$wave_secs = $item->swellPeriod_secs;
$water_temp = $item->waterTemp_F;
$query1 = "UPDATE beaches SET waves = '$waves', wave_secs = '$wave_secs', water_temp = '$water_temp' WHERE pri_id = '$id' LIMIT 1";
$update_result = mysql_query($query1);
if (!$update_result) {
die("Invalid query: " . mysql_error());
}
}
}
진짜 hoster를 얻을. 10 초의 실행 시간으로 HTTP를 통한 네트워크 서비스를 처리해야합니다. 진짜 주인을 사귀어 라. cron을 지원하는 것으로 가져 가십시오. – hakre