node.js - GCP Pubsub Nodejs 客户端承诺挂起,客户端冻结,没有错误
问题描述
使用 Google 的 Pub/Sub Node 客户端库针对您的项目,Promise 挂起且没有错误。
例子:
const { PubSub } = require("@google-cloud/pubsub");
async function start() {
const pubsubClient = new PubSub({ projectId: "my-project-id" });
try {
const [topics] = await pubsubClient.getTopics();
console.log(topics);
} catch (error) {
console.error(error);
}
}
start().catch(console.error);
不会返回错误,也不会显示任何进度。最终客户端在 10 分钟后超时。不会返回任何主题。发布到主题等也是如此。
解决方案
如果您使用模拟器 pubsub 进行本地开发,则您已设置PUBSUB_EMULATOR_HOST
变量。由于某种原因,它导致了这个问题。将其从您的环境中unset PUBSUB_EMULATOR_HOST
删除或从您的.env
文件中删除,然后重新启动服务器。
您可以检查它是否printenv
在您的 shell 中设置(或从节点应用程序运行exec
以检查)
有一个已知问题并且有相关的 Github 问题,所以如果你遇到这个答案并且它有帮助,请随时在此处让维护人员知道: https ://github.com/googleapis/nodejs-pubsub/issues/339 或在这里: https ://github.com/googleapis/gax-nodejs/issues/208 因为它似乎不会影响很多人,所以无法修复。
推荐阅读
- winforms - 如何在 Windows 窗体的用户控件中嵌入和呈现 openTK GLControl?
- android - 无法创建 AVD,出现“创建 AVD 时发生错误。有关详细信息,请参阅 idea.log”
- java - 如何使用 Spring RabbitMQ MessageListener 获取 MessageProperties
- c# - Visual Studio 程序也从输入中添加串联电阻。C#
- reactjs - 错误:getaddrinfo ENOTFOUND 调用 WooCommerce REST API
- docker - App Engine 灵活环境 - 安装过时版本的 GDAL 的 Dockerfile
- three.js - 在 ThreeJS 中使平面可拖动
- android - 尝试将按钮动态添加到 Activity,直到交换 Activity 按钮才会显示
- facebook-graph-api - Facebook Graph API 在消息字段中搜索特定文本的帖子
- r - 将数据框转换为空间数据框,以便能够在 QGIS 中打开 ESRI shapefile(R 编程)