GCP Pubsub Nodejs 客户端承诺挂起,客户端冻结,没有错误
Posted
技术标签:
【中文标题】GCP Pubsub Nodejs 客户端承诺挂起,客户端冻结,没有错误【英文标题】:GCP Pubsub Nodejs client promises hang, client freezes, no errors 【发布时间】:2021-09-25 04:54:17 【问题描述】:使用 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 分钟后超时。不会返回任何主题。发布到主题等也是如此。
【问题讨论】:
【参考方案1】:如果您使用模拟器 pubsub 进行本地开发,则您设置了 PUBSUB_EMULATOR_HOST
变量。由于某种原因,它导致了这个问题。使用 unset PUBSUB_EMULATOR_HOST
将其从您的环境中删除,或从您的 .env
文件中删除它并重新启动服务器。
你可以检查它是否在你的shell中设置了printenv
(或者run exec
from the node app来检查)
有一个已知问题和相关的 Github 问题,所以如果你遇到这个答案并且它有帮助,请随时在此处让维护人员知道: https://github.com/googleapis/nodejs-pubsub/issues/339 或在这里: https://github.com/googleapis/gax-nodejs/issues/208 因为它似乎不会影响很多人。
【讨论】:
以上是关于GCP Pubsub Nodejs 客户端承诺挂起,客户端冻结,没有错误的主要内容,如果未能解决你的问题,请参考以下文章
GCP PubSub - 使用 orderingKey (Nodejs) 进行批处理
如何从 Cloudflare 工作人员内部发布到 GCP PubSub 主题