1

私は次のことをします:

try:
    result = urlfetch.fetch(url=some_url, 
    ...
except DownloadError:
    self.response.out.write('DownloadError')
    logging.error('DownloadError')                                            
except Error:
    self.response.out.write('Error')
    logging.error('Error')

何が起こったのかについてより詳細な説明を得る方法はありますか?

4

2 に答える 2

3

を使用logging.exceptionして、エラーログメッセージに例外を追加する必要があります。

try:
    result = urlfetch.fetch(url=some_url, 
    ...
except DownloadError, exception:
    self.response.out.write('Oops, DownloadError: %s' % exception)
    logging.exception('DownloadError')                                         
except Error:
    self.response.out.write('Oops, Error')
    logging.exception('Error')
于 2011-09-21T22:08:26.467 に答える
0

要するに、違います。ダウンロードエラーは通常、私たちの経験ではタイムアウトです-バックエンドの何かが応答するのに時間がかかりすぎます(最初のバイト)。データを受信して​​いる場合、GAEは、10秒が経過した後、代わりにDeadline例外を待機してスローするようです。

成功することはありますか?d / l例外を処理する方法の選択は、バックエンドによって異なります。

単純なルートを使用して再試行する場合は、クォータとリミッターに注意してください。リクエストが実際に他のシステムに到達していて、時間内に戻ってこない可能性があります。この方法でリミッターを吹き飛ばすのは非常に簡単です。

J

于 2011-09-22T10:48:31.303 に答える