defind('x_Interval', 60); // กำหนด interval สำหรับ cronjob เป็นวินาที
ob_end_clean();
header("Connection: close");
ignore_user_abort(true);
ob_start();
echo "Server received your request.";
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush(); // All output buffers must be flushed here
flush(); // Force output to client
// Do processing here
sleep(1);
while(true){
$con = new mysqli('host','user','paswd','database');
if ($con->errno) exit; // หรือจะให้ทำอะไรต่อก็ว่าไปตามสดวก
save_for_active($con); // เก็บข้อมูลลง database เพื่อให้รู้ว่ากำลังทำงานอยู่
-- do somthing --
if (chk_close($con)) break; // อ่านข้อมูลจาก database ว่ามีการกำหนดให้ปิดโปรแกรมหรือเปล่า
$con->close();
sleep(x_Interval); // Cronjob interval on second
}
// sql สำหรับสั่งปิดจากภายนอก
$sql='insert into table (time_stamp) values('.(time()+x_Interval+1000).')');
function chk_close($con){
// function ไว้ตรวจสอบ คำสั่งปิดการทำงาน จากภายนอก
$con->query('delete from table where (time_stamp>now())');
return $con->affected_rows>0;
}
// sql สำหรับสั่งตรวจสอบการทำงานจากภายนอก
$sql='select * from table where (UNIX_TIMESTAMP() - time_stamp) < '.x_Interval.' ');
function save_for_active($con){
// function สำหรับให้ภายนอกรู้ว่ายังทำงานอยู่
$con->query('insert into table (time_stamp) values( time())');
}