首页 > 解决方案 > 从 pubsub 中提取消息而不会超时

问题描述

我正在尝试实现这一点,到目前为止,对于每个示例,Google 都有一个超时功能,该功能会在 1 分钟后停止侦听消息。

  setTimeout(() => {
    subscription.removeListener('message', messageHandler);
    console.log(`${messageCount} message(s) received.`);
  }, timeout * 1000)

假设我想永远收听新消息。没有超时功能的缺点是什么?还是宁愿无限循环更好?

我在本地测试,没关系,但我想知道在生产模式下会发生什么。是的,我想拉消息。

标签: node.jsgoogle-cloud-platformgoogle-cloud-pubsub

解决方案


超时设置为删除消息侦听器。如果您想不确定地听,请删除这 4 行,仅此而已!

但是,问问自己“如何停止优雅地倾听?” 在计算引擎抢占、应用或虚拟机停止的情况下,卸载实例(对于 Cloud Run、Cloud Functions 和 App Engine)。

这里的触发器是超时。您可以想象一个 while 循环并检查布尔值以继续或停止。


推荐阅读