博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php处理脚本执行超时
阅读量:5311 次
发布时间:2019-06-14

本文共 1187 字,大约阅读时间需要 3 分钟。

今天有人问题,如果动态处理脚本执行超时,貌似第一想到的是修改php.ini 的max_execution_time

但是如果要动态的处理每个脚本,或者每一类脚本的执行时间,php有一个动态修改执行时间的函数

void 
set_time_limit ( int 
$seconds )

Set the number of seconds a script is allowed to run. If this is reached, the script returns a fatal error. The default limit is 30 seconds or, if it exists, the max_execution_time value defined in the php.ini.

When called, set_time_limit() restarts the timeout counter from zero. In other words, if the timeout is the default 30 seconds, and 25 seconds into script execution a call such as set_time_limit(20) is made, the script will run for a total of 45 seconds before timing out. 

This function has no effect when PHP is running in 
. There is no workaround other than turning off safe mode or changing the time limit in the 
php.ini
. 

 

函数默认的是30秒,时间是从 set_time_limit 执行开始算时间

还有就是不能在php 安全模式下起作用

 

附带 处理网络超时,好像有很多像 curl,file_get_contents 都是可以加时间限制的 

curl_setopt($ch, CURLOPT_TIMEOUT_MS, 200); 毫秒级的

$timeout
=
array
(
    
'http'
=>
array
(
        
'timeout'
=> 5
//设置一个超时时间,单位为秒
    
)
);
$ctx
= stream_context_create(
$timeout
);
$text
=
file_get_contents
(
"http://example.com/"
, 0,
$ctx
);

 

 

转载于:https://www.cnblogs.com/charlesxiaobai/archive/2012/10/18/2729983.html

你可能感兴趣的文章
[hadoop](1) MapReduce:ChainMapper
查看>>
注册表文件关联
查看>>
[职场、征人、面试](呛)你到底要不要换工作? Part (II) -- 诚实,最难堪的状态,却最有价值的对策...
查看>>
《AOIT shader in UE4》
查看>>
抽象类与接口的区别
查看>>
[CentOS7] vncviewer与windows之间的复制粘贴
查看>>
切割大文件与合并文件
查看>>
面试问题
查看>>
Android中的Handler
查看>>
简单小练习_自动拉微信群
查看>>
PHP 常量dirname(__file__)
查看>>
cookies
查看>>
commons-fileupload-1.2.1.jar 插件上传与下载
查看>>
P1439 【模板】最长公共子序列
查看>>
[CSS]图片与文字对齐问题
查看>>
NYOJ-20 吝啬的国度
查看>>
Elasticsearch & Kibana with Shield
查看>>
Hibernate5 四种数据源配置
查看>>
SQL-记录表历史
查看>>
Magicodes.Admin.Core开源框架总体介绍
查看>>