Node.js GCP云运行503错误:服务无法用于长时间运行的请求
我在NodeJ中构建了4个API端点,并使用应用程序的docker映像部署在GCP Cloud,如下所示: 我的应用程序,点击不同的API,返回响应并将数据保存在云SQL中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
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听起来像是崩溃了。你确定没有达到最大内存吗?在云日志记录中是否有其他日志跟踪?您是否有其他应用程序超时(例如,当您建立数据库连接时,超时可能会触发未捕获的异常,从而导致崩溃)?