首页 > 解决方案 > 确保 PubSub 批处理请求在 Google Cloud Run Node App 中发送

问题描述

我有一个 NodeJS 服务器在 Google Cloud Run 的容器中运行。它将消息发布到 PubSub。

// during handling a request, 
const topic = pubsub.topic(topicName, {
    batching: {
        maxMessages: 1000,
        maxMilliseconds: 1000,
    },
});

// publish some messages
someArray.forEach((item) => {
    topic.publishJSON(item);
});

假设 someArray.length 小于 maxMessages。如果节点在 maxMilliseconds 过去之前发送响应会发生什么?消息是否发送?Google Cloud Run 是否会在 http 响应时终止容器,或者它是否知道 PubSub 库已设置超时?

标签: node.jsgoogle-cloud-pubsubgoogle-cloud-run

解决方案


Cloud Run 不会立即终止容器,但会在处理请求后限制其对 CPU 的访问。正如文档建议的那样,完成请求处理中的所有异步任务。像示例中一样尝试 async/await 。


推荐阅读