2012-04-11 156 views
4

我不希望郵件算作「讀」,但我想知道隊列中的內容。文檔:如何查看隊列中的消息

http://boto.s3.amazonaws.com/ref/sqs.html#module-boto.sqs

是不是很簡單的什麼吸收信息,哪些沒有。轉儲消息看起來很接近,但我寧願在內存中而不是文件中執行此操作。

常見問題:

http://aws.amazon.com/articles/1343#12

有一些粗略的解決方案:

如何偷看的消息?

在版本2008-01-01中,PeekMessage操作已從 Amazon SQS中刪除。此功能主要用於調試小型系統 - 專門用於確認消息已成功發送至隊列 或從隊列中刪除。要使用2008-01-01版本執行此操作,您可以將 記錄到消息的消息ID和收據句柄,並將它們關聯起來以確認何時收到消息並刪除了 。

有沒有人有這樣的運氣?這似乎是非常基本的隊列功能,如果沒有一個乾淨的方法來做到這一點,我會感到震驚。

回答

5

SQS中不再有真正的窺視功能,但您可以通過簡單地使用get_messages並將visibility_timeout設置得相當低來完成您想要的功能。只要您不刪除已閱讀的消息,它們就會在visibility_timeout過期後重新出現在隊列中,並可供閱讀。唯一棘手的部分是試圖找出多長時間的超時應該。如果隊列中有大量消息,則必須多次調用get_messages才能檢索所有消息,並且在您仍在查看消息時,您可能不希望先前讀取的消息再次出現。