gcloud-java pubsub API :如何设置 "Return Immediately" 标志

gcloud-java pubsub API : how to set "Return Immediately" flag

使用 gcloud-java pubsub API 0.2.6 - 如何通过订阅拉取将 "Return Immediately" 标志设置为 TRUE?

"return immediately" 标志在 gcloud-java pubsub API 中默认设置为 true 以进行拉取调用。目前无法设置标志,但该特定库处于 alpha 阶段,因此可能会改变。

(注意:我是 gcloud-java 团队的一员)

gcloud-java提供了三种拉取消息的方式:

Future<Iterator<ReceivedMessage>> pullAsync(String subscription, int maxMessages);

Iterator<ReceivedMessage> pull(String subscription, int maxMessages);

MessageConsumer pullAsync(String subscription, MessageProcessor callback, PullOption... options);

前两种方法默认将 "return immediately" 标志设置为 true。

相反,代表用户处理连续拉取的最后一个方法始终将 "return immediately" 标志设置为 false。用法示例如下

MessageProcessor messageProcessor = new MessageProcessor() {

  @Override
  public void process(Message message) throws Exception {
    // handle message
  }
};

MessageConsumer consumer = pubsub.pullAsync(subscription, messageProcessor);

// close the consumer to stop pulling
consumer.close();