サーバーファーム全体でタスクを同期するためのよく知られたベストプラクティスはありますか?たとえば、サーバーファーム上でフォーラムベースのWebサイトを実行していて、データベース内の複数のテーブルに書き込む必要のある2人のモデレーターがいて、そのモデレーターの要求がサーバー内の別のサーバーによって処理されているファームでは、ロック機能を実装して、同時に同じアイテムに対してそのアクションを実行できないようにするにはどうすればよいですか?サーバーファーム全体のロックを実装する方法は?
これまでのところ、データベース内のテーブルを使用して同期することを考えています。挿入していなければテーブル内の項目のIDを確認し、続行します。それ以外の場合は戻ります。おそらく共有キャッシュもこれに使用できますが、私は現時点でこれを使用していません。
他の方法はありますか?
ところで、データベースのバックエンドとしてMySQLを使用しています。すべての状態は、(中央)データベースにある場合
同時に複数の要求がデータベースサーバーにアクセスしようとしています。彼らは別のサーバー上にあるということはあまり変わっていません。 – jfclavette
OKでも、同時に複数のレコードに影響します。最初の要求がまだ実行中のときに、同じレコードに影響を与える別の要求はありません。簡単に言えば、C#ではlockキーワードのようなものを使いたいが、分散して動作させたい。 –