我有一个在App Engine中运行的消息处理器任务。很多时候它似乎都死了,然后进入很长一段时间(数分钟)的日志以尝试进行ah_start,然后最终重新启动。
此任务响应消息队列中的消息,然后将这些消息中的数据写入mySql数据库。
从对数直方图来看,该任务似乎处于15分钟的周期内,在其中工作了一段时间,然后执行了ah_start循环,然后又恢复工作。
当我开始发送大量消息要处理时,它会失去消息,这对于生产环境而言并非最佳情况。
我真的不知道该在哪里检查发生了什么。
很抱歉,但我搜索无法找到关于如何使用_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
感谢您的帮助。
答案 0 :(得分:0)
我将从纠正app.yaml
中的语法错误开始。
如我所见:runtime: nodejs10
并且没有env: flex
设置,这似乎是App Engine标准环境。 (app.yaml
for standard reference)
不过,我看到您的resources
设置仅适用于App Engine Flexible。 (app.yaml
for flexible reference)
App Engine Flex和App Engine Standard实际上是两种不同的产品,因此您需要确定要使用哪一种。您可能会找到关于here的文章。这可能是原因,我什至对此部署成功感到惊讶。