2017-09-07 6 views
0

나는 엣지 케이스를 보여 주었고, 일부 메시지는 뽑아 내고 파싱에 실패하는 루프에 갇혀있다. 이 메시지들을 어떻게 없앨 수 있습니까? 나는 gcloud 명령 (gcloud beta pubsub subscriptions pull <SUBSCRIPTION> --auto-ack)으로 --auto-ack를 시도했지만 여전히 나타나고있다.pubsub 구독을 삭제하는 가장 좋은 방법은 무엇입니까?

어떤 아이디어가 있습니까?

답변

0

--auto-ack은 구독자가 실제로 실행 중이기 때문에 해당 메시지 (예 : acknowledgement deadline)가 전달되지 않는 한 작동합니다. 이 경우 가입자가 보유하고있어 메시지가 gcloud 도구로 전달되지 않습니다.

당신의 가입자를 종료
  1. 에서, ACK 기한이 경과 할 때까지 기다린 다음 지정한 gcloud 명령을 실행 : 당신은 몇 가지 옵션이있다. 문제의 메시지는 명령 줄 도구에서 수신하고 확인해야합니다. 명령은받은 메시지를 인쇄합니다. --max-messages 옵션을 기본값 인 1로 설정할 수도 있습니다.
  2. 구문 분석 할 수없는 메시지를 처리하도록 구독자를 업데이트하십시오. 메시지를 확인하기로 결정하거나 그러한 메시지에 대해 별도의 항목을 만들어 해당 항목에 실패한 메시지를 게시 한 다음 메시지를 확인하십시오. 그렇게하면 주 가입자를 방해하지 않고도이 다른 주제의 메시지 (다른 가입자/구독)를 검사 할 수 있습니다. 일반적으로 dead letter queue이라고합니다.