Dav*_*ave 16 python twitter wsgi oauth httplib
我和Django使用了两个不同的python oauth库来通过twitter进行身份验证.使用WSGI进行apache设置.当我重新启动服务器时,一切都运行良好大约10分钟,然后httplib似乎锁定(请参阅以下错误).
我只运行了1个进程和1个WSGI线程,但这似乎没有任何区别.
我无法弄清楚为什么它会锁定并给出这个CannotSendRequest错误.我花了很多时间来解决这个令人沮丧的问题.任何有关它的提示/建议将不胜感激.
File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py", line 92, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "mypath/auth/decorators.py", line 9, in decorated
return f(*args, **kwargs)
File "mypath/auth/views.py", line 30, in login
token = get_unauthorized_token()
File "/root/storm/eye/auth/utils.py", line 49, in get_unauthorized_token
return oauth.OAuthToken.from_string(oauth_response(req))
File "mypath/auth/utils.py", line 41, in oauth_response
connection().request(req.http_method, req.to_url())
File "/usr/lib/python2.5/httplib.py", line 866, in request
self._send_request(method, url, body, headers)
File "/usr/lib/python2.5/httplib.py", line 883, in _send_request
self.putrequest(method, url, **skips)
File "/usr/lib/python2.5/httplib.py", line 770, in putrequest
raise CannotSendRequest()
Run Code Online (Sandbox Code Playgroud)
CannotSendRequest
Den*_*ach 29
当您httplib.HTTP
为新请求重用对象时,如果您没有getresponse()
为先前的请求调用其方法,则会引发此异常.可能在此之前还有一些其他错误导致连接处于断开状态.解决问题的最简单可靠方法是为每个请求创建新连接,而不是重用它.当然,它会慢一点,但我认为让你在单进程和单线程中运行应用程序不是问题.
归档时间: |
|
查看次数: |
14497 次 |
最近记录: |