同步拉pubsub node.js

时间:2018-11-19 21:12:32

标签: google-cloud-platform google-cloud-functions google-cloud-pubsub

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

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

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

由于我处于云功能中,因此不确定异步拉是否可行。

当没有待处理的消息时,如何摆脱1.5 s的延迟并立即获得pull(request)返回?将returnImmediately设置为true的同步pull()立即返回

1 个答案:

答案 0 :(得分:1)

正如@DougStevenson指出的那样,您应该编写一个Cloud Function,以便在主题中发布新消息时触发该事件,您可以按照this tutorial进行操作,这样您将获得非常快速的响应而没有任何延迟。