→可視性タイムアウトを増やします
・ChangeMessageVisibility APIコールを使用して、可視性タイムアウトを増やします
この選択肢が正解の理由は以下の通りです。
ChangeMessageVisibility APIコールは、メッセージが再度表示されるまでの期間(Visibility Timeout)を変更するためのAPIです。SQSキューからメッセージを受け取ってからRDSに書き込むまでの時間がVisibility Timeoutよりも長いと、そのメッセージが再度表示され、再度処理される可能性があります。これが重複したレコードが見つかる原因である可能性があります。可視性タイムアウトを増やすことで、同一のメッセージが再度表示される時間を延長し、アプリケーションがメッセージを処理する時間を確保できます。
したがって、一度だけメッセージの処理を保証するためには、ChangeMessageVisibility APIを使用して可視性タイムアウトを増やすのが適切です。

コメント