TLDR: Laravel アトミック ロックをロックせずに、$lock->get()
呼び出しの戻り値を確認せずに、ロックされているかどうかを確認するにはどうすればよいですか?
スケジューラーを通じて複数の Laravel コマンドを実行しています。コマンドはスケジュールされておらず、実行中の場合は他のコマンドを実行する必要はありません。そこで、Laravel からアトミック キャッシュ ロックを次のように導入しました。 リーリー
これは期待どおりに機能しますが、これらのコマンドを複数並行して実行すると、別のコマンドのcheckSetupRunning 関数を介してロックが取得されたように見えるため、セットアップが完了しても失敗することがあります。 -コマンドが実行されていません。
p>したがって、ロックをロックせずにロックが取得されたかどうかを確認する方法が必要です。ドキュメントといくつかのコードを確認しましたが、解決策が見つかりませんでした。
これが私たちが見つけた方法です
リーリーロック所有者 (文字列) が存在する場合はそれを返し、存在しない場合は false を返します。