2012-04-11 22 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を複数回呼び出す必要があります。また、メッセージをまだ見ている間に以前に読み込まれたメッセージが再表示されないようにします。

関連する問題