php 设置一个函数的最大运行时间
2015-04-18 16:27
295 查看
如何防止一个函数执行时间过长呢?在PHP里可以用pcntl时钟信号+异常来实现
原理是在函数执行前先设定一个时钟信号,如果函数的执行超过规定时间,信号会被触发,信号处理函数会抛出一个异常,被外层代码捕获。这样就跳出了原来函数的执行,接着执行下面的代码。如果函数在规定的时间内,时钟信号不会触发,在函数结束后清除时钟信号,不会有异常抛出。
declare(ticks = 1); function a() { sleep(10); echo "a finishi\n"; } function b() { echo "Stop\n"; } function c() { usleep(100000); } function sig() { throw new Exception; } try { pcntl_alarm(1); pcntl_signal(SIGALRM, "sig"); a(); pcntl_alarm(0); } catch(Exception $e) { echo "timeout\n"; } b(); a(); b();
原理是在函数执行前先设定一个时钟信号,如果函数的执行超过规定时间,信号会被触发,信号处理函数会抛出一个异常,被外层代码捕获。这样就跳出了原来函数的执行,接着执行下面的代码。如果函数在规定的时间内,时钟信号不会触发,在函数结束后清除时钟信号,不会有异常抛出。
相关文章推荐
- PHP设置脚本最大执行时间的三种方法
- php页面最大执行时间 set_time_limit函数不起作用
- 一个测试运行时间的函数
- php中的一个时间函数引发的问题
- 设计一个栈,提供一个函数能够找出栈内最大的元素,时间复杂度为O(1)
- 关于php页面最大执行时间问题(set_time_limit函数在windows下不起作用的解决)
- 写的一个获取 某程序 运行所需时间的函数: 用到了abstract, final等
- C# 对一个函数设置执行的超时时间、函数执行的等待时间、等待结果的时间、允许的执行时间
- 修改 PHP 最大运行时间 max_execution_time
- 一个严格的PHP Session会话超时时间设置方法
- PHPstorm 函数时间注释的修改 正常的PHPstorm里面函数方法的注释是没有动态时间设置的,但是看了PHP file里面有时间日期的注释,而PHP Function Doc Commen
- PHP超过最大执行时间设置
- 一个严格的PHP Session会话超时时间设置方法
- 一个简单的装饰器算出函数运行时间
- 计算php页面运行时间的函数
- C语言测试一个函数运行时间的模板
- 自动同步北京时间,需要启动jboss服务,然后运行127.0.0.1:8080即可,共两个jsp文件,一个获取时间,一个设置时间
- php 如何设置一个严格控制过期时间的session
- 测试一个函数的运行时间(C++)