[英]SQS Messages Not Deleting
我在 SQS 隊列中有一小部分消息,即使發送到 AWS 端點的刪除請求返回 200 響應,也不會刪除這些消息。 我的應用程序可以很好地處理這些消息,並且也可以很好地發送刪除請求。
我使用的是 Java AWS SDK 1.3.6。
有沒有其他人遇到過這個問題?
糟糕 - 隊列被意外設置為defaultVisibilityTimeout=0
。 將此值更改為正值可解決問題。
這仍然提出了幾個問題:
官方文件(版本1.9.13)
重要提示:即使您刪除了該消息,也可能會收到消息。 如果在請求刪除郵件時存儲郵件副本的其中一個服務器不可用,則極少數情況下可能會發生這種情況。 副本仍保留在服務器上,並可能在后續接收請求中再次返回給您。 您應該將系統創建為冪等的,以便不止一次地接收特定消息不是問題。
如果您傳入了異常,則很有可能您實際上並未刪除 sqs 消息,因此它會卡在“飛行中”,因為您的處理過程中可能存在錯誤。 將您的 sqs 輪詢包裝起來,除了像這樣,看看您是否有任何例外:
import traceback
import sys
try:
pollsqshere()
except Exception:
print(traceback.format_exc())
# or
print(sys.exc_info()[2])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.