Как получить подробную информацию о DownloadError? - PullRequest
1 голос
/ 22 сентября 2011

Я делаю следующее:

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')

Есть ли способ получить более подробное описание произошедшего?

Ответы [ 2 ]

3 голосов
/ 22 сентября 2011

Вы должны использовать logging.exception, чтобы добавить Исключение в сообщение об ошибке ERROR:

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')
0 голосов
/ 22 сентября 2011

Короче, нет. В нашем опыте ошибка загрузки обычно является тайм-аутом - что-то на внутренней стороне слишком долго, чтобы ответить (первый байт). Если он получает данные, похоже, что GAE будет ждать и выдавать исключение Deadline вместо того, чтобы через 10 секунд прошло.

Успешно ли это когда-либо ? Ваш выбор относительно того, как обращаться с исключениями d / l, будет варьироваться в зависимости от серверной части.

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

J

...