我需要发送数千个邮寄请求。 我在网上搜索信息,经过多次尝试,我编写了代码 以下解决方案:
post_data = urllib.urlencode({'pushes': b64encode(json.dumps(pushes))})
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent,
'Content-type': "application/x-www-form-urlencoded",
'Accept': "text/plain"}
request = urllib2.Request(PUSH_URL, data=post_data, headers=headers)
response = urllib2.urlopen(request).read()
push是一个字典列表。在
大多数情况下,这个解决方案运行良好,但有时会导致目标服务器(Apache)上出现分段错误。我监视了目标服务器上打开的连接。 连接数低(100-200)。 也许我的代码不是100%正确。 我需要一个更可靠的解决方案。在
提前谢谢。在
更新-2013年1月25日
我使用strace调试apache web服务器(目标服务器)。
我发现Zend框架使用的syscall'gettimeofday'有一些问题。
我试着把zend应用程序移到两个不同的服务器上,
Centos和Ubuntu Server 12.04。
PHP版本也从5.3更改为5.4。
我对斯特拉斯总是有同样的问题。在
我将应用程序移植到另一个框架中。问题消失了。
未修改执行POST请求的源服务器上的代码。在
如果Apache上有segfaults,为什么认为问题出在代码上?我要做的是仔细观察一下Apache的情况,当它濒临死亡时——打开调试日志,strace/ktrace它的进程,最后测试在使用其他http服务器(如Nginx或Lighttpd)时是否会发生同样的情况。 在不知道Apache为什么会消亡的情况下,您甚至无法尝试在代码中对其进行修正(即使正确的解决方案是修复Apache)。在
相关问题 更多 >
编程相关推荐