首页 > Php > apache 的 5分钟

apache 的 5分钟

用snoopy制作一个采集程序,这个程序逻辑上需要由业务人员来手动开启采集,所以只能制作成web页面的,但是在采集过程中,却遇到了一个问题:

由于采集的数据量很大, 需要Apache很长时间去响应,当超过5分钟的时候,会发生超时,即使程序中设置set_time_limit()也没有效果。当超时后,web页面会显示服务器错误,但是通过后台监控,发现抓取程序其实还在运行,并且运行第二次,这样就会导致这个程序运行了两遍。又检查了Apache日志,发现每次请求超时(5分钟)后,Apache会很快再次发起一个请求,导致了程序的二次运行。


查看了Apache的配置文件,发现了如下参数。

# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

这个参数导致大数据量操作的请求每过300秒就会断线,并且会每300秒重试发送请求。这些会导致web应用异常。
所以最好是优化自己的程序,尽可能的把程序时间压缩在300秒以内,否则的话,可能就只能修改配置文件的 Timeout 了。

  1. 还没有评论
评论提交中, 请稍候...

留言

可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks