私はSQLテーブル内でローカルに値を探すサービスを持っています。値が存在しない場合は、リモート呼び出しを行っています。リモート呼び出しから返された値がある場合、この値はローカルSQLテーブルに追加されます。排他的なリソースアクセスのHTTPリクエストをロックする
私は、文字列値XXXが既に存在することをログファイル内のユニークインデックス例外に通知しました。以下が起こったことを意味私に
:
Request1_localSqlCheck
Request1_remoteCheck
Request2_localSqlCheck
Request2_remoteCheck
Request1_AddValueLocallyIfRecievedByRemote
Request2_AddValueLocallyIfRecievedByRemote // Same value Added here causes exception.
私はすべての3つのステップに原子を作り、それをロックしたい:
Lock
{
Request1_localSqlCheck
Request1_remoteCheck
Request1_AddValueLocallyIfRecievedByRemote
}
この作品は、これらの3つのメソッド呼び出しの周りにロックをかけます?
ロックはプロセス境界を越えません。このサービスがファームまたは複数のワーカーで実行されている場合、ロックでは不十分です。 – CodeCaster
リモートサービスはcloundでは実行されますが、1つのインスタンスに制限されます。 – Elisabeth