python - deadline = None after using urlfetch.set_default_fetch_deadline(n) -
i'm working on web application python , google app engine.
i tried set default urlfetch deadline globally suggested in previous thread:
https://stackoverflow.com/a/14698687/2653179
urlfetch.set_default_fetch_deadline(45) however doesn't work - when print value in 1 of functions: urlfetch.get_default_fetch_deadline() none.
here main.py:
from google.appengine.api import users import webapp2 import jinja2 import random import string import hashlib import cqutils import time import os import httprequests import logging google.appengine.api import urlfetch urlfetch.set_default_fetch_deadline(45) ... class del(webapp2.requesthandler): def get(self): id = self.request.get('id') ext = self.request.get('ext') user_id = httprequests.advance(id,ext) d2 = urlfetch.get_default_fetch_deadline() logging.debug("value of deadline = %s", d2) prints in log console:
debug 2013-09-05 07:38:21,654 main.py:427] value of deadline = none the function being called in httprequests.py:
def advance(id, ext=none): url = "http://localhost:8080/api/" + id + "/advance" if ext none: ext = "" params = urllib.urlencode({'ext': ext}) result = urlfetch.fetch(url=url, payload=params, method=urlfetch.post, headers={'content-type': 'application/x-www-form-urlencoded'}) if (result.status_code == 200): return result.content
i know old question, ran issue.
the setting placed thread-local, meaning if application set thread-safe , handle request in different thread 1 set default deadline for, can lost. me, solution set deadline before every request part of middleware chain.
this not documented, , required looking through source figure out.
Comments
Post a Comment