Мы пытаемся использовать новую возможность работы с потоками python 2.7 в Google App Engine, и создается впечатление, что созданный поток уничтожается до того, как он завершает работу. Наш сценарий:
- Пользователь отправляет сообщение на сервер
- Обновляем данные пользователя
- Мы создали поток, чтобы выполнить более тяжелую обработку
- Мы возвращаем ответ пользователю, прежде чем дождаться окончания обработки в тяжелых условиях
Я предполагал, что поток продолжит работу после того, как запрос вернется, если он не превысит общее время запроса. Однако мы видим, что поток случайно убивается в процессе выполнения. Без исключений, без ошибок, ничего. Он просто перестает работать.
Допускается ли существование потоков после возврата ответа? Это не воспроизводится на сервере dev, только на живых серверах.
Конечно, мы могли бы вместо этого использовать очередь задач, но это реальная боль, поскольку нам пришлось бы устанавливать URL для действия и сериализовать / десериализовать данные.