1

デフォルトの期限を で 60 に設定しurlfetch.set_default_fetch_deadline(60)ましたが、URL を取得すると、正確に 10 秒後でもDeadlineExceededError.

呼び出しは API ラッパーによって行われるため、urlfetchbutを使用していません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秒です。

4

0 に答える 0