タスクの同時操作を管理する必要があります。つまり、一度に実行できるのは、このタスクの 1 つのバージョンだけです。
問題は、マルチサーバー環境で実行することです。
要件:
- メソッドのインスタンスを一度に実行できるようにします。(OS ミューテックス)。
- マルチサーバー環境で動作する必要があります。
- プロセスが停止した場合、Mutex をドロップする必要があります。
- 堅牢で成熟したソリューションである必要があります。
環境:
- Windows サーバー (オンプレミス)
- 。ネット
- アズール
これまでに検討したこと:
- OS ミューテックス: オンプレミスで動作しますが、プロセスの終了時にロックが解放されるかどうかは不明です。また、Windows が堅牢なミューテックスをサポートしているかどうかも不明です。
- DB フラグ: オンプレミスで機能し、マルチサーバーで機能します。プロセスの終了時にロックを解除しません。
- AppFabric: オンプレミスで動作しますが、追加のセットアップ手順は望ましくありません。マルチサーバーで動作します。ロックを取得するとタイムアウトするように設定できますが、プロセスが終了してもロックは解除されません。(今のところ最高)
- CIFS ファイル ロック: オンプレミスで動作し、マルチサーバーで動作し、プロセスの終了時にロックを解除する必要があります。これは個人的な偏見かもしれませんが、堅牢なテストに失敗します。
これはかなり一般的な問題だと思いますが、コミュニティが一般的にどのように解決しているかを知りたいと思っています。
特に、CIFS ロック ソリューションや MSMQ を使用できるかどうかについて意見を聞きたいです。