https://lemontia.tistory.com/441
[SPRING] 멀티서버 스케쥴 처리를 위한 LOCK API: ShedLock
멀티서버에서 스케쥴을 중복되게 처리하지 않으려면 LOCK 정보를 공통으로 참조하는 곳에서 관리되어야 한다. 관리될 곳으로는 DB가 가장 적당하다. 관련 멀티 서버에 대한 스케쥴 처리를 위해 다음의 API를 사용..
lemontia.tistory.com
를 참조하였음
다만 사용하면서
lockAtLeastFor 와 lockAtMostFor 의 의미를 정확하게 몰랐었는데
처음 스케줄러가 시작되면 lockAtMostFor로 시간이 잡힘
이상태에서 lockAtLeastFor값이 없다면
lock_until은 해당 스케줄러의 종료시간이 됨
lockAtLeastFor이 있다면 lock_until은 해당 스케줄러의 시작시간 + lockAtLeastFor가 됨
즉 lockAtMostFor는 모종의 이유로 스케줄러에서 에러가 나거나 시간이 오래걸릴때 다른 스케줄러가 기다려주는 시간이고
lockAtLeastFor는 해당 스케줄러가 시작되고 난후 최소한 기다려주는 시간이다.
만약 lockAtMostFor값이 lockAtLeastFor보다 작다면
에러가 발생한다.