【问题标题】:How to ACK using Google PubSub (@google-cloud/pubsub)如何使用 Google PubSub 确认 (@google-cloud/pubsub)
【发布时间】:2018-06-22 03:54:42
【问题描述】:

使用这个例子:https://cloud.google.com/nodejs/getting-started/using-pub-sub

完全按照这个例子,消息(成功和失败)都没有被确认,而且谷歌甚至没有在页面上提到“确认”这个词。所以他们被重试并且不可能扩展。没有文档的完整拦截器。

使用时如何在 Google Pub Sub 中确认消息:

const Pubsub = require('@google-cloud/pubsub');

【问题讨论】:

    标签: node.js publish-subscribe gcloud google-cloud-pubsub


    【解决方案1】:

    我建议您看看这个quickstart。基本上,message.ack()messageHandler 中。

    【讨论】:

    • 谢谢。原来这是在 OP 中链接到的谷歌文档中的一个遗漏。
    【解决方案2】:

    Google 的documented example 显示:

    // Event handlers
    function handleMessage (message) {
      const data = JSON.parse(message.data);
      cb(null, data);
    }
    

    ... 从不确认()。因此,google 示例将始终重新运行所有任务。

    改为:

    // Event handlers
    function handleMessage(message) {
      try {
        cb(null, message);   
      } catch (err) {
        console.log('Failed to handle message with data: [' + message.data + '] - Removing.  Err: ' +  err.toString());
        message.ack();
      }
    }
    

    ...这样做可以让处理函数在需要的地方进行 ack()。

    【讨论】:

      猜你喜欢
      • 2019-07-02
      • 1970-01-01
      • 2021-06-18
      • 2019-02-06
      • 2020-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多