Приложение, запущенное в Google App Engine, терпит неудачу, пытается ah_start в течение нескольких минут, затем перезапускается

#google-app-engine

#google-app-engine

Вопрос:

У меня есть задача обработки сообщений, которая выполняется в app engine. Часто кажется, что оно умирает, затем переходит в длинный (несколько минут) журнал попыток выполнить ah_start, затем, наконец, перезапускается.

Эта задача отвечает на сообщения из очереди сообщений, затем записывает данные из этих сообщений в базу данных MySQL.

Глядя на гистограмму журнала, кажется, что эта задача находится в 15-минутном цикле, где она работает некоторое время, затем выполняет этот цикл ah_start на некоторое время, затем возвращается к работе.

Когда я начинаю отправлять большую нагрузку сообщений в process, он теряет сообщения, что не является оптимальной ситуацией для производственной среды.

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

Я сожалею, но, как я могу, я действительно не могу найти хорошую информацию о том, как использовать процесс _ah / start. Хорошая ссылка на объяснение и пример стоили бы многого.

Мой процесс очень прост, запускаю ожидание сообщения сохраняю данные в базе данных подтверждающее сообщение возвращаюсь к ожиданию следующего сообщения

Вот копия моего файла app.yaml:

 manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10


service: message-processor

runtime: nodejs10


env_variables:
  BUCKET_NAME: "stans_temp"

handlers:
- url: /stylesheets
  static_dir: stylesheets

- url: /.*
  secure: always
  redirect_http_response_code: 301
  script: auto
  

Спасибо за любую помощь.

Комментарии:

1. Есть ли у вас обработчик URL для /_ah/start , который отправляет действительный ответ 200?

2. Сложно что-либо сказать, но обычно в App Engine все начинается с app.yaml… Можете ли вы добавить файл?

Ответ №1:

Я бы начал с исправления синтаксических ошибок в app.yaml .

Как я вижу: runtime: nodejs10 и там нет env: flex настроек, похоже, это стандартная среда App Engine. ( app.yaml для стандартной справки)

Однако я вижу, что у вас есть resources настройка с гибкостью только для App Engine. ( app.yaml для гибкой ссылки)

App Engine Flex и App Engine Standard — это практически два разных продукта, поэтому вам нужно решить, какой из них вы хотите использовать. Статью об этом вы можете найти здесь. Это может быть причиной, я даже удивлен, что это было успешно развернуто.