Я создаю приложение на Python на App Engine. Мое приложение получает изображения в виде вложений электронной почты . Когда приходит электронное письмо, я беру изображение и должен отправить его стороннему API.
Первое, что я сделал, было:
1) сделать POST-запрос к стороннему API с данными изображения
Я остановил этот метод, потому что у меня были довольно серьезные проблемы с кодировкой с urllib2 и MultipartPostHandler.
Второе, что я сейчас делаю, это
1) Поместите изображение во входящее письмо в Datastore
2) Поместите его в memcache
3) Отправьте в API URL-адрес , который обслуживает изображение (с использованием memcache или, если не найдено в memcache, хранилища данных)
Проблема, которую я прочитал в своих журналах: DeadlineExceededError: ApplicationError: 5
Точнее, я вижу два запроса в своих журналах:
- во-первых, входящее письмо
- затем сторонний HTTP-вызов API для моего изображения по URL, который я ему дал
Входящая электронная почта заканчивается DeadlineExceededError.
Сторонний вызов API для моего приложения завершается нормально, корректно обрабатывая изображение.
Моя интерпретация:
Похоже, что App Engine ожидает ответа от стороннего API, затем закрывается из-за истечения времени ожидания и затем обрабатывает запрос, сделанный сторонним API для изображения. К сожалению, поскольку соединение закрыто, я не могу получить полезную информацию, предоставленную сторонним API, после получения моего изображения.
Мои вопросы:
1) Может ли App Engine обрабатывать запрос от хоста, на который он рассчитывает получить ответ?
2) Если нет, как я могу обойти эту проблему?