デフォルトの期限を で 60 に設定しurlfetch.set_default_fetch_deadline(60)
ましたが、URL を取得すると、正確に 10 秒後でもDeadlineExceededError
.
呼び出しは API ラッパーによって行われるため、urlfetch
butを使用していませんhttplib2
。しかし、私はすでにラッパーのタイムアウトにも変更を加えています。
編集:いくつかのコード
class ContextioHandler(BaseAPIHandler):
def __init__(self, request, response):
urlfetch.set_default_fetch_deadline(60)
self.cio = contextIO2.ContextIO(config.CONTEXTIO_API_KEY,
config.CONTEXTIO_API_SECRET,
timeout=60)
self.initialize(request, response)
def get(self):
account = self.cio.get_accounts(email='foo@bar.com')
account = account[0]
account.get_message('abc123')
context.io ラッパー ライブラリ コンストラクタ
class ContextIO(object):
url_base = "https://api.context.io"
def __init__(self, consumer_key, consumer_secret, timeout=None):
self.consumer = Consumer(key=consumer_key, secret=consumer_secret)
self.client = Client(self.consumer, timeout=timeout)
self.client.set_signature_method(sha1())
self.base_uri = '2.0'
AppEngine ログ (トリミング):
...
D 2013-06-05 05:02:09.321 GET https://api.context.io/2.0/accounts?email=foo%40bar.com
D 2013-06-05 05:02:10.091 GET https://api.context.io/2.0/accounts/xyz123/messages/abc123
E 2013-06-05 05:02:19.992 Deadline exceeded while waiting for HTTP response from URL: https://api.context.io/2.0/accounts/xyz123/messages/abc123
...
D 2013-06-05 04:58:15.763 GET https://api.context.io/2.0/accounts?email=foo%40bar.com
D 2013-06-05 04:58:15.820 GET https://api.context.io/2.0/accounts/xyz123/messages/abc123
E 2013-06-05 04:58:25.715 Deadline exceeded while waiting for HTTP response from URL: https://api.context.io/2.0/accounts/xyz123/messages/abc123
...
それは常に〜10秒です。