私は、複数のワーカーが同じキューにアクセスしてそれらが操作するファイルに関する情報を取得する必要があるプロジェクトに取り組んでいます。ファイルのサイズは、単なるメガバイトから数百ギガバイトまでです。この理由から、可視性のタイムアウトは意味をなさないと思われます。なぜなら、どれくらい時間がかかるかわからないからです。私はいくつかの方法を持っていますが、より良い方法があれば教えてください。他のワーカーが現在処理中のメッセージにアクセスできないようにするにはどうすればよいですか?
メッセージは、元のキューから削除され、キューを「待っている」 に入れます。プログラムがファイルの処理を終了すると、 が削除され、それ以外の場合はメッセージがキューから削除され、 が元のキューに戻されます。
メッセージIDはデータベースで確認されます。メッセージIDが の場合は無視されます。それ以外の場合、プログラムは メッセージの処理を開始し、メッセージIDをデータベースに挿入します。
ありがとうございます!