自从过去1个月以来,我们开始面临这个问题,AppEngine后端随意停止处理任何工作。 我见过的最接近的其他Q是this one和this,但没有任何用处。 我的推送队列配置是
<queue>
<name>MyFetcherQueue</name>
<target>mybackend</target>
<rate>30/m</rate>
<max-concurrent-requests>1</max-concurrent-requests>
<bucket-size>30</bucket-size>
<retry-parameters>
<task-retry-limit>10</task-retry-limit>
<min-backoff-seconds>10</min-backoff-seconds>
<max-backoff-seconds>200</max-backoff-seconds>
<max-doublings>2</max-doublings>
</retry-parameters>
</queue>
标准Java App Engine,包含多个模块,其中一个是带有基本缩放的后端,B4。
<runtime>java8</runtime>
<threadsafe>true</threadsafe>
<instance-class>B4</instance-class>
<basic-scaling>
<max-instances>2</max-instances>
</basic-scaling>
注意,为了解决这个问题,我尝试了以下但无济于事:
行为:过了一会儿(现在几乎每天一次),后端只会停止响应,此队列中的任务将保持原样。只有继续的方法是从控制台中终止后端实例,然后新实例开始处理任务。这些任务是获取数据的简单http调用。队列通常在任何时间从1个任务到15-20个任意位置。注意到即使低至3-4,它有时也会失速。
日志根本不显示任何内容,没有任何滚动。仅当删除后端实例时,日志才会显示/ task已通过控制台终止。没有内存,没有崩溃,没有404。
我无法添加更多图片,但以下是Utilization,Memory Usage&amp; most recent memory usage之后我删除了实例并恢复了任务。
此次和最近的其他经历动摇了我对Google App Engine的信心。我究竟做错了什么? (这个具有队列配置的B1后端设置已经使用多年了!)