Node.js GCP云运行503错误:服务无法用于长时间运行的请求

Node.js GCP云运行503错误:服务无法用于长时间运行的请求,node.js,google-cloud-platform,google-cloud-run,Node.js,Google Cloud Platform,Google Cloud Run,我在NodeJ中构建了4个API端点,并使用应用程序的docker映像部署在GCP Cloud,如下所示: 我的应用程序,点击不同的API,返回响应并将数据保存在云SQL中 FROM node:12 WORKDIR /usr/src/app COPY package*.json ./ RUN npm install --only=production # Copy local code to the container image. COPY . ./ # Run the web se

我在NodeJ中构建了4个API端点,并使用应用程序的docker映像部署在GCP Cloud,如下所示:

我的应用程序,点击不同的API,返回响应并将数据保存在云SQL中

FROM node:12

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install --only=production

# Copy local code to the container image.
COPY . ./

# Run the web service on container startup.
CMD [ "node", "app.js" ]
1 API大约需要1分钟才能返回响应,当我尝试从Postman返回响应并点击云运行URL时,我得到了成功的响应

其他3个API分别需要2分钟和20分钟才能返回响应,直到那个时,我从云运行中得到错误

503 Service Unavailable 
takes: 2 m 1.02 s 
478 B
以下是给出的配置:

Memory allocated: 8 GB
CPU allocated: 4 
Maximum request per container: 20
Request timeout: 3600 seconds

NOTE: I am only hitting one request at a time 
有什么问题吗? 我增加了并发性,但这不起作用。 因为我的应用程序在云功能服务中无法工作,因为超时时间为9分钟


我可以在GCP中使用什么样的最佳服务来完成我的工作?

我发现问题出在NodeJS请求超时上,默认为120秒,在下面链接的帮助下,我解决了问题

因此,我必须在代码中执行以下操作:

我可以为整个服务器设置超时:

var server = app.listen();
server.setTimeout(500000); // In milliseconds
或仅针对特定路线:

app.post('/xxx', function (req, res) {
   req.setTimeout(500000);
});

这解决了问题。

503听起来像是崩溃了。你确定没有达到最大内存吗?在云日志记录中是否有其他日志跟踪?您是否有其他应用程序超时(例如,当您建立数据库连接时,超时可能会触发未捕获的异常,从而导致崩溃)?