首页 > 解决方案 > 同步拉取 pubsub node.js

问题描述

我有一个云功能,它正在从 pubsub 订阅同步拉取。该请求是使用设置为 true 的 returnImmediately 标志配置的,这样我们就不会等待队列中出现 pubsub 消息。

const request = {
    subscription: formattedName,
    maxMessages: maxMessages,
    returnImmediately: true,
};
...
    client.pull(request)
...

当有一些消息挂起时,请求返回非常快(100ms),但当队列中没有消息时,调用挂起大约 1.5 秒,然后返回空的消息数组。

由于我在云功能中,我不确定异步拉取是否可行。

当没有待处理的消息时,我怎样才能摆脱这个 1.5 秒的延迟并让 pull(request) 立即返回?将 returnImmediately 设置为 true 的同步 pull() 立即返回会感觉很自然

标签: google-cloud-platformgoogle-cloud-functionsgoogle-cloud-pubsub

解决方案


正如@DougStevenson 所指出的,您应该编写一个云函数以在您的主题中发布新消息时触发,您可以按照本教程进行操作,然后您将获得非常快速的响应,不会有任何延迟。


推荐阅读