https://lemontia.tistory.com/441

 

[SPRING] 멀티서버 스케쥴 처리를 위한 LOCK API: ShedLock

멀티서버에서 스케쥴을 중복되게 처리하지 않으려면 LOCK 정보를 공통으로 참조하는 곳에서 관리되어야 한다. 관리될 곳으로는 DB가 가장 적당하다. 관련 멀티 서버에 대한 스케쥴 처리를 위해 다음의 API를 사용..

lemontia.tistory.com

를 참조하였음

 

다만 사용하면서 

lockAtLeastForlockAtMostFor 의 의미를 정확하게 몰랐었는데

 

처음 스케줄러가 시작되면 lockAtMostFor로 시간이 잡힘

이상태에서 lockAtLeastFor값이 없다면 

lock_until은 해당 스케줄러의 종료시간이 됨

lockAtLeastFor이 있다면 lock_until은 해당 스케줄러의 시작시간 + lockAtLeastFor가 됨

 

lockAtMostFor는 모종의 이유로 스케줄러에서 에러가 나거나 시간이 오래걸릴때 다른 스케줄러가 기다려주는 시간이고 

lockAtLeastFor는 해당 스케줄러가 시작되고 난후 최소한 기다려주는 시간이다.

 

만약 lockAtMostFor값이 lockAtLeastFor보다 작다면

에러가 발생한다.

Posted by 삽지리
,