deadline = None после использования urlfetch.set_default_fetch_deadline (n)

Я работаю над веб-приложением с Python и Google App Engine.

Я попытался установить крайний срок по умолчанию URLFetch по умолчанию, как это было предложено в предыдущем потоке:

https://stackoverflow.com/a/14698687/2653179

urlfetch.set_default_fetch_deadline(45) 

Однако это не сработает – когда я печатаю его значение в одной из функций: urlfetch.get_default_fetch_deadline () – None.

Вот 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 from 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) 

Печать в консоли журнала:

 DEBUG 2013-09-05 07:38:21,654 main.py:427] value of deadline = None 

Функция, вызываемая в httpRequests.py:

 def advance(id, ext=None): url = "http://localhost:8080/api/" + id + "/advance" if ext is 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 

One Solution collect form web for “deadline = None после использования urlfetch.set_default_fetch_deadline (n)”

Я знаю, что это старый вопрос, но недавно столкнулся с проблемой.

Этот параметр помещается в локальный поток, что означает, что если ваше приложение настроено на потокобезопасность, и вы обрабатываете запрос в другом потоке, чем тот, на который вы установили конечный срок по умолчанию, он может быть потерян. Для меня решение заключалось в том, чтобы установить крайний срок перед каждым запросом как часть цепи промежуточного программного обеспечения.

Это не задокументировано и требует просмотра источника, чтобы понять это.

 
Interesting Posts for Van-Lav
Python - лучший язык программирования в мире.