Бэкэнд GAE не отвечает на запрос на запуск - PullRequest
1 голос
/ 14 марта 2012

Это, вероятно, действительно базовая вещь, которую я просто странно раздумываю в приложении Python 2.5.

У меня есть процесс, который займет около часа, поэтому я сделал бэкэнд. Для этого у меня есть backend.yaml, который имеет что-то вроде следующего:

-name: mybackend
 options: dynamic
 start: /path/to/script.py

(Сценарий - просто необработанное вычисление. Нет активного представления о веб-сеансе).

На игрушечных данных это работает просто отлично.

Раньше это было общедоступно, поэтому я переходил на страницу, скрипт запускался и время ожидания истекало примерно через минуту (допустим, льготный период отключения по HTTP + 30 с). Я подумал, что это проблема браузера. Я повторяю то же самое с заданием cron. Нет кости. Переключитесь на использование push-очереди и добавление целевой задачи, так как на бумаге это выглядит так, как будто она будет ждать 10 минут. То же самое.

Все 3 раза после этой минуты, что означает, что я не разделяю запрос от бэкэнда, как я полагаю.

Я предполагаю, что мне нужно написать правильный обработчик, чтобы серверная часть работала, но я точно не знаю, как написать Handler / webapp2Route. Должен ли я обработать _ah/start/ или создать новую конечную точку для бэкэнда? Как мне справиться с поддоменом? Это все еще кажется неправильным (я вставляю длинный процесс прямо в своего рода запрос), но в противном случае я в растерянности.

1 Ответ

0 голосов
/ 21 марта 2012

Таким образом, основная причина в том, что в самом скрипте было сделано следующее:

models = MyModel.all()
for model in models:
    # Magic happens

Я в основном считал само собой разумеющимся, что запрос автоматически объединит мой Query.all () со многими сущностями, но он умирает при 1000-й записи или около того. Первоначально я написал, что это было вычисление только потому, что я полностью проигнорировал тот факт, что чтение может завершиться ошибкой.

Фактическим решением для решения проблемы, которую мы хотели, в конечном итоге стало «Использовать библиотеку уменьшения карты», поскольку мы пытались проанализировать каждую модель для анализа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...