mysql 行レベル ロックを使用したい。テーブル全体をロックできません。サーバーに対して2つの異なるメッセージを同時に処理する2つのプロセスを避けたい。と呼ばれるテーブルを持つことができると私が思ったこと:
server_lock
そして、1つのプロセスがサーバー上で動作を開始すると、テーブルに行が挿入されます。
このアプローチの問題は、アプリケーションがクラッシュした場合です。手動でロックを解除する必要があります。アプリケーションがクラッシュした場合に行レベルのロックとロックが解放される方法はありますか?
編集 言語として C++ を使用しています。私のアプリケーションはメッセージ キューに似ています。ただし、違いは、キューごとに 1 つのプロセスによって入力される 2 つのキューがあることです。アクションが同じオブジェクトに属し、両方が同じオブジェクトを処理している場合、アクションの後、間違ったデータになる可能性があります。したがって、両方のプロセッサが同じオブジェクトを同時に変更しないように、これら 2 つのキューにロック メカニズムが必要です。