關於背景執行自訂函數

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.