node.js - 确保 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 库已设置超时?
解决方案
Cloud Run 不会立即终止容器,但会在处理请求后限制其对 CPU 的访问。正如文档建议的那样,完成请求处理中的所有异步任务。像示例中一样尝试 async/await 。
推荐阅读
- java - 使用 MySQL 创建基本 SpringBoot 应用程序时出现连接错误
- python - 如何使用 URL Python Django
- django - Django API 客户端获取带有有效负载的请求
- opencv - OpenCV中的(CountNonZero)和(Moment M00)和(ContourArea)有什么区别?
- laravel - SQLSTATE [HY000]:一般错误:1364 字段“isAdmin”没有默认值
- laravel - 检查特定用户是否已连接 | Laravel 身份验证
- node.js - 在删除 mongodb 和 nodejs 中的相应用户之前,删除与用户相关的博客文章
- r - 如何更改因子参数?(右)
- java - 我如何在java中制作暂停选项
- python - Python矩阵中的同时赋值