Нужна помощь в устранении неполадок в работе Google App Engine, которая работала в dev, но не работала - PullRequest
0 голосов
/ 30 сентября 2018

Я работаю над сайтом уже более года, в основном использую Django и Python3.Несколько моих друзей и я создали интерфейс, в котором пользователь вводит некоторые параметры и отправляет их; это идет в GAE для запуска задания и возврата результатов.

В моей локальной среде разработчика все работает хорошо.У меня есть две отдельные среды разработки.Один строит весь сервис в докер-контейнере.Это дает желаемые результаты примерно за 11 секунд.Другая среда запускает исходные файлы локально на моем компьютере и подключается к базе данных Postgres, размещенной в Google Cloud.Приложение Python работает локально.Для его локального запуска требуется примерно 2 минуты, большая задержка между облаком и отправкой / получением с моего локального компьютера.

Как только я выполняю развертывание приложения Gcloud и пытаюсь запустить его в работе, оно никогдаотделки.У меня есть некоторые операторы печати, встроенные в код, я знаю, что доходит до той части, где отправленные параметры идут в код Python.Я наблюдаю с помощью этой команды на локальном компьютере: gcloud app logs read.

Я подозреваю, что, поскольку мой локальный компьютер - зверь (процессор i7-7770 с 64 ГБ ОЗУ), он работает без проблем.Но в GAE я не думаю, что он предоставляет надлежащие машины для эффективного выполнения работы (недостаточно вычислений, недостаточно оперативной памяти).Это мое предположение.

Итак, мне нужна помощь в устранении неполадок.Я попытался изменить свой файл app.yaml, чтобы ресурсы масштабировались до 16 ГБ памяти, но он никогда не развернулся.Я получил ошибку 13.

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

502 Ошибка сервера: Ошибка сервера. Сервер обнаружил временную ошибку и не смог выполнить ваш запрос.Пожалуйста, повторите попытку через 30 секунд.

1 Ответ

0 голосов
/ 08 октября 2018

ОК, так что на всякий случай у кого-нибудь в будущем возникнет подобная проблема ... постоянный сбой моих сотрудников Google App Engine был из-за использования кадров данных Pandas в производственной среде.Я не знаю точно, что делал Pandas, но я продолжал получать ошибки памяти, это могло привести к сбою сайта ... и это не происходило в одной строке кода.То есть это случайно произошло где-то в операции Pandas Dataframe.

Я до сих пор использую Pandas Dataframe просто для чтения в CSV-файле.Я тогда использую

data_I_care_about = dict(zip(df.col1, df.col2)) 
#or 
other_data = df.col3.values.tolist()

и затем иду в город с обработкой.Как примечание, на моей локальной машине (моя среда разработки в основном) - от начала до конца потребовалось 6 секунд.Это длительное время для веб-запроса, но я спешил, поэтому я начал использовать Pandas.

После рефакторинга та же самая работа была выполнена примерно за 200 мс с использованием списков и диктов Python (опять же, в моемсреда разработки).Сайт работает и работает очень гладко сейчас.После нажатия кнопки «Отправить» бэкэнду требуется не более 7 секунд, чтобы вернуть наборы данных и отобразить их на веб-странице.Спасибо за помощь выглядывает!

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