私のシナリオでは、ユーザーがサーバーにリクエストを送信すると、サーバーはアイテムのリストをデータベースにアップロードできます。アイテムのリストは、いくつかのクエリで構成される for ループでデータベースにアップロードされます。これらの項目を順番にデータベースに追加することが非常に重要です。
問題は、ユーザーが別のリクエストを発行すると、別の一連の for ループが起動され、項目が正しい順序でデータベースに追加されない可能性があることです。(データベースに項目を追加する for ループが 2 つあるため)。
例: リクエスト 1: 1,2,3 リクエスト 2: 4,5,6 データベースに挿入される順序: 1,2,3,4,5,6 4,2,5,6,3
別のユーザーが要求を発行した場合、2 つの要求は相互に排他的であるため、問題はありません。
この問題を解決するには、静的メソッドを使用するか、synchronized キーワードを使用しますが、コードでボトルネックを引き起こしたくありません (他のユーザーがデータベースへのアクセスを待つ必要はありません!)。
または、for ループを使用して複数のクエリを実行するのは悪い考えでしょうか?
オブジェクトやメソッドではなく、「リクエスト」に基づいてコードを同期するにはどうすればよいですか? デザインパターンとかあるの?