14

背景: C# を使用して、長時間持続する操作をキューに入れる関数を作成しています。各操作は、3 つのステップに分けられます
。1. データベース操作 (データの更新/削除/追加)
2. Web サービスを使用した長時間の計算
3. ステップ 1 の同じ db テーブルに対するデータベース操作 (ステップ 2 の計算結果を保存)、および db テーブルの整合性をチェックします。たとえば、項目がステップ 1 で同じである (Pls は、より詳細な例については以下を参照してください) )

ダーティ データや破損を避けるために、ロック オブジェクト (静的なシングルトン オブジェクト) を使用して、3 つの手順がトランザクション全体として実行されるようにします。複数のユーザーが操作を実行するために関数を呼び出している場合、このロックを使用せずに、ユーザー自身の操作中に異なるステップで同じ db テーブルを変更する可能性があるためです。彼のステップ 3。

ただし、これを負荷分散メカニズムを使用するクラウド コンピューティング プラットフォームに配置する必要があるため、関数が別のサーバーにデプロイされるため、実際にはロック オブジェクトは有効になりません。

質問:上記の状況でロック オブジェクトを機能させるにはどうすればよいですか?

4

1 に答える 1