Hi Jawon, You can do this by using an API call hook, like so:
def urlfetch_timeout_hook(service, call, request, response): if call != 'Fetch': return # Make the default deadline 10 seconds instead of 5. if not request.has_deadline(): request.set_deadline(10.0) apiproxy_stub_map.apiproxy.GetPreCallHooks().Append( 'urlfetch_timeout_hook', urlfetch_timeout_hook, 'urlfetch') On Wed, Jan 19, 2011 at 2:41 PM, Jawon <jawonl...@gmail.com> wrote: > Hi, > My app (in Python) uses the ZSI SOAP library to make SOAP calls to an > external server that is not under my control. From what I can tell, > the SOAP requests take about 5 seconds - enough that I consistently > run into the 5 second deadline of GAE's urlfetch. Because I'm using > the ZSI library, I am unclear about where the urlfetch request call is > being made, although I do have access to the source code. Is there a > way to override the default deadline of the urlfetch library? > > Here is the error log: > ApplicationError: 5 > Traceback (most recent call last): > File "/base/python_runtime/python_lib/versions/1/google/appengine/ > ext/webapp/__init__.py", line 517, in __call__ > handler.post(*groups) > File "/base/data/home/apps/opalapp/1.3477302363 <tel:+13477302363> > 97102974/ > handlers.py", line 162, in post > res = c.launchJob(cmd_args, inputs) > File "/base/data/home/apps/opalapp/1.3477302363 <tel:+13477302363> > 97102974/ > opalclient.py", line 122, in launchJob > resp = self.appServicePort.launchJob(req) > File "./client/AppService_client.py", line 60, in launchJob > response = self.binding.Receive(launchJobResponse.typecode) > File "./client/ZSI/client.py", line 545, in Receive > self.ReceiveSOAP(**kw) > File "./client/ZSI/client.py", line 428, in ReceiveSOAP > if not self.IsSOAP(): > File "./client/ZSI/client.py", line 420, in IsSOAP > self.ReceiveRaw() > File "./client/ZSI/client.py", line 387, in ReceiveRaw > response = self.h.getresponse() > File "/base/python_runtime/python_dist/lib/python2.5/httplib.py", > line 197, in getresponse > self._allow_truncated, self._follow_redirects) > File "/base/python_runtime/python_lib/versions/1/google/appengine/ > api/urlfetch.py", line 241, in fetch > return rpc.get_result() > File "/base/python_runtime/python_lib/versions/1/google/appengine/ > api/apiproxy_stub_map.py", line 530, in get_result > return self.__get_result_hook(self) > File "/base/python_runtime/python_lib/versions/1/google/appengine/ > api/urlfetch.py", line 331, in _get_fetch_result > raise DownloadError(str(err)) > DownloadError: ApplicationError: 5 > > Thank you, > Jawon Lee > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to google-appengine@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine+unsubscr...@googlegroups.com<google-appengine%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > > -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.