關於背景執行自訂函數


date_default_timezone_set('Asia/Taipei');
ignore_user_abort(true);
set_time_limit(0);

while(true){
$date = date('H:i:s');
if($date == '03:00:00'){
$file = fopen('Information.txt','a+');
fwrite($file,'begin:'.date('Y-m-d H:i:s').PHP_EOL);
run();
fwrite($file,'End:'.PHP_EOL);
fclose($file);
}

if($date == '02:59:00'){
$file = fopen('Information.txt','a+');
fwrite($file,'other:'.date('Y-m-d H:i:s').PHP_EOL);
fclose($file);
}
sleep(1);
}
function run(){
$file = fopen('Information.txt','a+');
fwrite($file,'run:'.date('Y-m-d H:i:s').PHP_EOL);
fclose($file);
}


我想每天凌晨3點讓它執行自訂函數裡的動作
但是都執行到fwrite($file,'begin:'.date('Y-m-d H:i:s').PHP_EOL);
就停止了...

我晚上11點啟動這個背景程式
當下還可以執行到自訂函數裡
但是到了凌晨都會進不去函數裡面
就連fwrite($file,'End:'.PHP_EOL);也沒執行到
想請問各位高手有沒有辦法幫我解決
拜託了...

評論

  • 先把 run() 外面的 fwrite 拿掉看看,或者 改成 寫完 測試狀態1 關閉,然後執行run()
    就個人感覺,會有 file lock 的疑慮
    	if($date == '03:00:00'){
    $file = fopen('Information.txt','a+');
    fwrite($file,'begin:'.date('Y-m-d H:i:s').PHP_EOL);
    fclose($file);

    run();

    $file = fopen('Information.txt','a+');
    fwrite($file,'End:'.PHP_EOL);
    fclose($file);
    }
Sign In or Register to comment.