ajax 怎么设置超时(一个action执行了2遍)
今天在测试工程时发现一个action执行了2遍,这个操作大致需要5分多钟才能完成,工程环境apache2+tomcat6.0。
网上搜索发现了几个可以设置超时的地方:
1.ajax语法去设置单位毫秒,例如:
$.ajax({ url:XXX, timeout:600000, type:'POST', data:{ }, error:function(){ show_fail_meg("启动系统失败!"); } });
2.tomcat配置server.xml单位毫秒
Connectorport="8080"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"URIEncoding="UTF-8"/>
3.apache的配置文件httpd.conf,单位秒
# #Timeout:Thenumberofsecondsbeforereceivesandsendstimeout. # Timeout60
修改以上几个地方,发现还是没有生效,最终定位在了mod_jk模块,
mod_jk简称JK,是Apache服务器的一个可插入模块,用以为Apache或IIS服务器提供处理JSP/Servlet的能力。
也就是说JK的设置可能覆盖了apache2和tomcat以及ajax的设置。
JK的配置文件/etc/httpd/conf/workers.properties内容如下:
worker.master.socket_timeout=300
果然看到这个数字正好是5分钟,跟异常现象相一致,改大之后重启,正常!