2017-09-07 81 views
0

我有一個邊緣案例出現,一些消息被困在一個試圖被拉和解析失敗的循環中。我怎樣才能擺脫所有這些信息?我用gcloud命令(gcloud beta pubsub subscriptions pull <SUBSCRIPTION> --auto-ack)嘗試了--auto-ack,但它們仍然顯示出來。清除pubsub訂閱的最佳方法?

有什麼想法?

回答

0

--auto-ack應該工作,除非你的用戶正在積極運行,因此可能會持有這些消息,即acknowledgement deadline還沒有通過。在這種情況下,郵件不會傳送到gcloud工具,因爲您的訂戶正在持有它們。您有幾個選項:

  1. 關閉您的用戶,等待確認截止時間已過,然後運行您指定的gcloud命令。這些消息應該被命令行工具收到並得到確認。該命令確實打印出收到的消息。您可能還需要設置--max-messages選項,因爲它默認爲1.
  2. 更新您的訂戶以處理這些無法解析的消息。您可以決定確認這些消息,也可以爲此類消息創建單獨的主題,將失敗的消息發佈到該主題,然後確認消息。這樣,您仍然可以在不妨礙主用戶的情況下檢查這個不同主題上的消息(使用不同的訂閱者/訂閱)。這通常被稱爲dead letter queue