답변

1

풀 호출을 위해 gcloud-java pubsub API에서 "return immediately"플래그가 기본적으로 true로 설정됩니다. 특정 라이브러리가 알파 상태이기 때문에 플래그를 설정할 방법이 없으므로 변경 될 수 있습니다.

+0

오랜 시간 동안 메시지가없는 상황이 발생하면 상당한 비용 오버 헤드가 발생합니다. 다행히 GA의 기본값 (false)으로 돌아 왔습니다. –

+0

이 답변은 정확하지 않습니다. 'MessageConsumer pullAsync (String subscription, MessageProcessor callback, PullOption ... options)'는 기본적으로 "return immediately"플래그를 false로 설정합니다. – mziccard

0

(경고 : 나는 gcloud-java 팀의 일원이다) : 첫 번째 두 가지 방법이 기본적으로 true로 "즉시 반환"플래그를 설정하는

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

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

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

gcloud-java는 당겨 메시지의 세 가지 방법을 제공합니다 .

반대로 사용자를 대신하여 연속적으로 처리하는 마지막 방법은 항상 "즉시 반환"플래그를 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(); 
관련 문제