簡體   English   中英

Cloud Run 上的 Nest.js 使用公牛運行計划作業會引發隨機連接錯誤?

[英]Nest.js on Cloud Run running scheduled jobs with bull throws random connection errors?

我正在嘗試執行第 3 方 API 請求以獲取大量分頁數據(約 16k 個對象的數組,每個 object 具有約 25 個鍵/值對),我認為我的速率受到限制,但請求在本地和在手動觸發時也可以生產

但是當他們按計划運行時,我得到了這些隨機連接錯誤

errorMessage: 'Client network socket disconnected before secure TLS connection was established',
errorStack: 'Error: Client network socket disconnected before secure TLS connection was established\n' +
  '    at connResetException (node:internal/errors:691:14)\n' +
  '    at TLSSocket.onConnectEnd (node:_tls_wrap:1585:19)\n' +
  '    at TLSSocket.emit (node:events:402:35)\n' +
  '    at endReadableNT (node:internal/streams/readable:1343:12)\n' +
  '    at processTicksAndRejections (node:internal/process/task_queues:83:21)'
errorMessage: 'socket hang up',
errorStack: 'Error: socket hang up\n' +
  '    at connResetException (node:internal/errors:691:14)\n' +
  '    at TLSSocket.socketOnEnd (node:_http_client:471:23)\n' +
  '    at TLSSocket.emit (node:events:402:35)\n' +
  '    at endReadableNT (node:internal/streams/readable:1343:12)\n' +
  '    at processTicksAndRejections (node:internal/process/task_queues:83:21)'
errorMessage: 'read ECONNRESET',
errorStack: 'Error: read ECONNRESET\n' +
  '    at TLSWrap.onStreamRead (node:internal/stream_base_commons:220:20)'
errorMessage: 'write ECONNRESET',
errorStack: 'Error: write ECONNRESET\n' +
  '    at WriteWrap.onWriteComplete [as oncomplete] (node:internal/stream_base_commons:98:16)'

我在 Cloud Run 上運行 Nest.js 服務器

這是我的 Docker 配置

FROM node:16-alpine as build

WORKDIR /app

# Copy and install dependencies first so that they can be cached
COPY package.json .
COPY yarn.lock .
RUN yarn install

# Copy rest of the files and build
COPY . .
RUN yarn build
RUN ls -a

FROM node:16-alpine

WORKDIR /app

# Copy and install dependencies first so that they can be cached
COPY package.json .
RUN yarn install --prod

# Copy files and dist folder from build image
COPY . .
COPY --from=build /app/dist ./dist
RUN ls -a


EXPOSE 3000

CMD ["node", "dist/src/main.js"]

此實例有 4GiB memory,2 個 CPU,請求超時設置為 2400 秒,每個容器的最大請求數為 80,最小和最大實例數分別設置為 1 和 25。

所有流量都通過 VPC 連接器路由,它是一個f1-micro實例,最小實例設置為 2,最大實例設置為 10。

對於公牛,有 5 個不同的工人設置,它們被隨機分配到工作中

我在之前部署到的 App Engine 上沒有收到這些錯誤

有誰知道這是什么原因造成的?

我建議查看 Cloud Run 中設置的並發值。 默認情況下,每個 Cloud Run 容器可以同時接收 80 個請求,但您最多可以增加到 1000 個,您可以根據您的代碼是否可以同時處理並行請求來修改此值,在此鏈接中您可以找到如何將您的並發值設置為 Cloud Run

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM