名前付きロックを探しています(注意深く危険なものです。本番サーバーでロックを試してはいけません:D)。
ご覧ください:
A1 :ロックする一意の文字列を選択し、GET_LOCK
を使用します その上(たとえば、GET_LOCK('conversation_' || [id])
; 1
を返す場合 ロックはあなたのものです。好きなことをして、後でRELEASE_LOCK
を呼び出します (エラーを含む、考えられるすべてのシナリオを考慮します。)
A2 :GET_LOCK
の2番目のパラメーター 秒のタイムアウトです 。操作がタイムアウトした場合GET_LOCK
0
を返します 。
公式ドキュメントから
太字は私のものです:
- 接続ごとに1つのロックしか保持できないことを意味します(ユーザーの場合は問題ありません)
- 閉じるとロックが解除されることを意味します 接続
- 2つの異なる接続(同じプールからでも)が一度に同じ外観を取得しない可能性があることを意味します。