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 异常的选择将因后端而异。

如果您采用简单的路线并且只是重试,请注意配额和限制器 - 您的请求很可能确实到达了其他系统,只是没有及时返回。以这种方式很容易通过限制器。

Ĵ

于 2011-09-22T10:48:31.303 回答