GAE urlfetch를 사용할 때 다음 예외가있는 사용자가 있습니까?GoogleAppEngine urlfetch 시간 초과 예외
DownloadError: ApplicationError: 2 timed out
HTTP POST 요청을 보내려고합니다. 좋아요 :
result = urlfetch.fetch('http://api.nathan.com:8080/Obj/',
method='POST',
payload=postdata,
deadline=10)
마감 시간을 최대 (10 초)로 설정하려고했습니다. 커맨드 라인 (curl 또는 httplib2 사용)의 요청은 약 1 초가 걸립니다. 내가 URL을 가져올 사용하려고하면
이INFO __init__.py:819] adding models from module __main__
INFO __init__.py:867] added model Obj with type <class '__main__.Obj'>
INFO dev_appserver.py:3243] "POST /Obj HTTP/1.1" 200 -
INFO dev_appserver_index.py:205] Updating /path/to/index.yaml
여기에 출력입니다 : 여기
[email protected] ~ $ time curl
-d "<Obj><a>1</a><b>n</b></Obj>"
http://api.nathan.com:8080/Obj/
agd1c2VyYXBpcgoLEgRTZXNzGAIM #< key returned by call
real 0m1.109s
user 0m0.003s
sys 0m0.009s
은 컬 요청 (I AppEngine에 받침대 서버를 사용하고 있습니다)에 대한 dev에 애플리케이션 서버의 출력입니다 :
ERROR __init__.py:388] ApplicationError: 2 timed out
Traceback (most recent call last):
File "/path/to/webapp/__init__.py", line 507, in __call__
handler.get(*groups)
File "/path/to/myapp/main.py", line 62, in get
result = urlfetch.fetch(...)
File "/path/to/urlfetch.py", line 241, in fetch
return rpc.get_result()
File "/path/to/apiproxy_stub_map.py", line 501, in get_result
return self.__get_result_hook(self)
File "/path/to/urlfetch.py", line 325, in _get_fetch_result
raise DownloadError(str(err))
DownloadError: ApplicationError: 2 timed out
INFO dev_appserver.py:3243] "GET/HTTP/1.1" 500 -
INFO dev_appserver.py:3243] "POST /Obj/ HTTP/1.1" 200 -
현재 해결 방법은 try/except pass 블록에 urlfetch 호출을 래핑하는 것입니다. – nafe
이 통화 중에 서버에서 어떤 일이 발생했는지 확인할 수 있습니까? 페이로드를 올바르게 처리하고 키를 반환합니까? 사후 데이터의 가치는 귀하가 생각하는 것입니까? –
안녕하세요 알렉스, 서버가 POST 요청을 받고 그것은 호출에 따라 새로운 Obj를 만들고 있습니다. – nafe