google app engine - AppEngine's urlfetch, how to force timeout to be respected -


i'm using urlfetch google appengine, , add deadline parameter force deadline short (3 seconds), following :

try:     urlfetch.set_default_fetch_deadline(3)     return urlfetch.fetch(url='http://www.example.com', method=urlfetch.get, deadline=3) except google.appengine.runtime.apiproxy_errors.deadlineexceedederror:     pass except google.appengine.api.urlfetch_errors.deadlineexceedederror:     pass  return none 

but no matter what, thread goes on , on 60 seconds (the max execution time http request on appengine) , fail miserably on deadlineexception ("thread running after request.").

is there way ensure upper query strictly stopped in 3 seconds?

i can share code have running in 1 of production projects. use deadline of 0.5 seconds in example. last checked, it's still working:

t_rpc = urlfetch.create_rpc(deadline=0.5) urlfetch.make_fetch_call(t_rpc, url) # , later... try:     result = t_rpc.get_result() except:     # handle errors...     pass  # use result... 

this using asynchronous version of api can technically things in between calling make_fetch_call , get_result. otherwise, can call them back-to-back , function same synchronous api.


Comments

Popular posts from this blog

javascript - Clear button on addentry page doesn't work -

c# - Selenium Authentication Popup preventing driver close or quit -

tensorflow when input_data MNIST_data , zlib.error: Error -3 while decompressing: invalid block type -