php Time Out คิวรี่ข้อมูลเยอะๆ แล้ว ทามเอ้ากลางคัน อยากให้ มีตัวจัดการ พอทามเอ้า ให้รีเฟส ทำงานต่อได้เลย
ถ้าข้อมูลเยอะ ๆ หนูแนะนำให้ไปใช้ โปรแกรมจำพวก Mysql Query Browser หรือไม่ก็ Navicat มาช่วยจะทำให้ Query เร็วขึ้นนะคะ
เท่าที่ลองดู ระดับแสน rec ถ้าทำ Index ไว้ ไม่น่าจะใช้เวลามากค่ะ
และการปรับแต่ง Server ก็เป็นสิ่งที่สำคัญไม่แพ้กัน ลองปรับ Mysql ดูนะคะ
สวัสดีทุกคนค่ะ
Date :
2015-05-05 22:00:34
By :
Th@iDev
ขอบคุณครับ
คือ ผมจะเขียน php ตรวจสอบการ ทามเอ้า แล้ว ให้มันทำงานทันที หลังจากนั้นครับ
โดยคนไม่ต้องไปยุ่งกันมัน จนกว่ามันจะทำงานเสร้จ
กล่าวคือ ทามเอ้าก้ได้ ไม่เป็นไร แต่ โปรแกรม ต้องทำงานต่อ จน คิวรี่ข้อมูลเสร็จ
ขอบคุณครับ
Date :
2015-05-06 09:44:40
By :
JoeDev
ตัวอย่าง
Code (PHP)
<?php
session_start();
if( isset($_REQUEST['execute'])){
ob_end_clean();
header("Connection: close");
ignore_user_abort(); // optional
ob_start();
/////////////////////////////////////////////////////////
$path = 'path/'.time().'.log';
$filename = 'd:/web/test/' . $path; // Server Path
$urlLink='http://www.yoururl.com/'.$path; // Link for Client
echo $urlLink;
$f = fwrite( $f=fopen( $filename, 'w'), 'start your status' ); chmod($filename, 0777); fclose($f);
/////////////////////////////////////////////////////////
header("Content-Length: $size");
ob_end_flush();
flush(); // ส่งข้อมูลที่ต้องการออก ไป ปิด connection server ยังทำงานต่อด้านล่าง
sleep(1);
///////////////////////// Server working on background ///////////////////////////////
$db=new mysqli(.......) or die( .......);
$rs = $db->query( $.......) or die( ..... );
while ($ro = $rs->fetch_assoc(){
$f = fwrite( $f=fopen( $filename, 'w'), 'your status' ); fclose($f);
}
$f = fwrite( $f=fopen( $filename, 'w'), 'End of file' ); chmod($filename, 0777); fclose($f);
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> Test Server execute on background </title>
<script src="jquery-2.1.1.min.js"></script>
<script>
function check_status( file_url ){
////////////////////////////// check status server working ///////////////////////////////
$.ajax({ url: file_url}).done( function(msg){
alert( msg ); if( msg !== 'End of file') { setTimeout( 'check_stauts("'+file_url+'")', 1000); }
}).fail(function(){ setTimeout( 'check_stauts("'+file_url+'")', 1000); });
}
$(document).ready(function(e){
$.ajax({ url: '?execute=1'}).done(function(url){ check_stauts( utl ); });
});
</script>
</head>
<body>
<form>
<button type='button'>submit</button>
</form>
</body>
</html>
Date :
2015-05-06 10:12:02
By :
Chaidhanan
Load balance : Server 00