Задания Cron закончились через 504 Gateway Timeout после 60 секунд в GAE с python 3.7 - PullRequest
0 голосов
/ 24 ноября 2018

Я создал новый проект с движком приложений Google, используя Python 3.7 и django, используя шаблон Google .Все задания cron завершились неудачно с истечением времени ожидания 504Кроме того, я пробовал новую очередь задач с помощью облачных задач Google, но этот запрос также не удался после 60-х годов.

App.yaml

# [START django_app]
runtime: python37

handlers:
- url: /assets
  static_dir: assets/
- url: /.*
  script: auto

instance_class: F2
automatic_scaling:
  min_idle_instances: 1
  max_idle_instances: automatic

Cron.yaml

cron:
- description: cron eth price
  url: /cron/
  schedule: every 5 mins

Cron view

class CronView(View):
    def get(self, request, *args, **kwargs):
        from time import sleep
        sleep(240)
        return HttpResponse('')

1 Ответ

0 голосов
/ 24 ноября 2018

Это всего лишь теория:)

Кажется, что в документации есть некоторый конфликт.

С одной стороны, из (стандартная среда 2-го поколения) Планирование заданийwith cron.yaml :

Задание cron будет вызывать URL-адрес, используя запрос HTTP GET, в указанное время дня.HTTP-запрос, вызываемый cron, может выполняться до 60 минут, но на распространяются те же ограничения, что и на другие HTTP-запросы .

Для сравнения, для стандартной среды 1-го поколенияНачиная с Крайние сроки :

Крайний срок ожидания cron зависит от класса экземпляра и типа масштабирования, настроенного для вашего приложения:

Автоматическое масштабирование

Время ожидания составляет около 10 минут.

С другой стороны, из строки Deadline в таблице Масштабирование экземпляра (соответствует информация 1-го поколения , но, вероятно, просто ошибка документации, учитывая, что поддержка очереди задач фактически отличается ):

Автоматическое масштабирование

60-секундный крайний срок для HTTP-запросов, 10-минутный крайний срок для задач из очереди задач.

... и, конечно, с учетом того, что запросы cron являются HTTP-запросами, а незадачи очереди задач.

...