NodeJS Google PubSub的未确认消息未被客户端拉取

yquaqz18  于 2023-06-22  发布在  Node.js
关注(0)|答案(1)|浏览(121)

我有一个非常简单的Node.js应用程序,它订阅了一个pub/sub主题。我已经在云控制台上将确认截止时间设置为10秒。

const client = new PubSub()
const sub = client.subscription('my-topic-sub')

sub.on("message", (msg) => {
  console.log("msg received")
})

当我向主题发布消息时,它会被节点应用程序接收并打印日志,但由于我没有确认消息,因此我希望它会被重新发送并再次打印日志。
我试过摆弄设置,并通过代码将ackDeadline选项直接传递给订阅,但没有效果。有趣的是,如果我拒绝了消息,它会立即重新发送。

lyr7nygr

lyr7nygr1#

默认情况下,客户端库将未确认消息的确认截止日期延长一小时,这将阻止消息的重新传递。更多信息请参见lease management documentation。您可以通过更改最长确认延长期限来更改延长期限的时间长度:

const options = {
  flowControl: {
    maxExtensionMinutes: 1,
  }
};

const subscription = pubSubClient.subscription('my-topic-sub', options);

相关问题