一聚教程网:一个值得你收藏的教程网站

热门教程

怎么利用register_shutdown_function判断php程序是否执行完

时间:2022-06-24 22:43:26 编辑:袖梨 来源:一聚教程网

register_shutdown_function函数的用法:当php脚本运行结束后,会回调一个您指定的函数里面的逻辑。(注意,以下两种情况不会执行回调函数:1.程序有语法错误;2.register_shutdown_function函数前,发生了致命错误,所以下面例子,我将register_shutdown_function放到了程序的最上面。)

还有一种应用场景就是:要做一个消费队列,因为某条有问题的数据导致致命错误,如果这条数据不处理掉,那么整个队列都会导致瘫痪的状态,这样可以用以下方法来解决。即:如果捕获到有问题的数据导致错误,则在回调函数中将这条数据处理掉就可以了。

php范例参考与解析:

register_shutdown_function('myFun'); //放到最上面,不然如果下面有致命错误,就不会调用myFun了。

$execDone = false; //程序是否成功执行完(默认为false)

/**

********************* 业务逻辑区*************************

*/

$tas = 3;

if($tas == 3)

{

new daixiaorui();

}

/**

********************* 业务逻辑结束*************************

*/

$execDone = true; //由于程序由上至下执行,因此当执行到此后,则证明逻辑没有出现致命的错误。

function myFun()

{

global $execDone;

if($execDone === false)

{

file_put_contents("E:/myMsg.txt", date("Y-m-d H:i:s")."---error: 程序执行出错。rn", FILE_APPEND);

/******** 以下可以做一些处理 ********/

}

}

热门栏目