近日在写一个计划任务相关的PHP程序时,初探了一下PHP的ignore_user_abort();这个函数可以让我们的PHP程序在后台运行(也就是说我们的页面关闭后,这个程序还会运行,直到服务器重启--具体说是IIS或者APACHE重启)。
具体用法示例如下:
ignore_user_abort(); // 后台运行
set_time_limit(0); // 取消脚本运行时间的超时上限
while(true)
{
//your code
}
同时在做这个程序的时候发现了一个BUG,当我在while程序体内用sleep(iX)后,发现别的页面全部卡死无法运行。后来发现是:session文件锁的问题。在需要在sleep前面使用:session_write_close();即可。