#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 — это практически два разных продукта, поэтому вам нужно решить, какой из них вы хотите использовать. Статью об этом вы можете найти здесь. Это может быть причиной, я даже удивлен, что это было успешно развернуто.