>  Q&A  >  본문

Laravel 캐시 잠금이 이미 잠겨 있습니까?

TLDR: Laravel 원자 잠금을 잠그지 않고 $lock->get() 호출의 반환 값을 확인하지 않고 잠겨 있는지 확인하는 방법은 무엇입니까?

스케줄러를 통해 여러 개의 Laravel 명령이 실행되었습니다. 명령은 예약되지 않았으며 실행 중인 경우 다른 명령을 실행해서는 안 됩니다. 그래서 저는 Laravel에서 다음과 같이 원자 캐시 잠금을 도입했습니다:

으아아아

이것은 예상대로 작동하지만 여러 명령을 병렬로 실행할 때 때로는 다른 명령의 checkSetupRunning 기능을 통해 잠금이 획득되어 setup-command가 실행되지 않는 경우에도 실패하는 것처럼 보입니다.

그래서 자물쇠를 잠그지 않고 자물쇠가 획득되었는지 확인할 수 있는 방법이 필요합니다. 문서와 일부 코드를 확인했지만 해결책을 찾을 수 없습니다.

P粉818561682P粉818561682226일 전480

모든 응답(1)나는 대답할 것이다

  • P粉604507867

    P粉6045078672024-03-28 12:32:45

    저희가 찾은 방법은 이렇습니다

    으아아아

    잠금 소유자(문자열)가 있으면 반환하고, 그렇지 않으면 false를 반환합니다.

    회신하다
    0
  • 취소회신하다