원자적 큐 요소 이동 (LCC.kvdb.queue.move)
선언
value, err = LCC.kvdb.queue.move(from_name, pop?, to_name, push?, timeout?)
매개변수
- from_name
문자열 형태, 소스 큐의 이름(빈 값 불가능, 최대 길이는256바이트) - pop
문자열 형태, 선택 사항; 소스 큐에서 요소를 꺼내오는 방향으로,"front"또는"back"이며, 기본값은"front"입니다. - to_name
문자열 형태, 대상 큐의 이름(빈 값 불가능, 최대 길이는256바이트) - push
문자열 형태, 선택 사항; 대상 큐에 요소를 넣는 방향으로,"front"또는"back"이며, 기본값은"back"입니다. - timeout
수치 형태, 선택 사항; 요청 시 초과되는 시간(초)으로, 기본값은60입니다.
반환 값
- value
문자열 형태, 이동된 요소의 내용; 소스 큐가 비어 있을 경우nil이 반환됩니다. - err
문자열 형태 또는nil형태로, 실패하거나 소스 큐가 비어 있을 경우'not found'가 반환됩니다.
설명
소스 큐에서 요소를 원자적으로 꺼내어 대상 큐에 넣는 작업을 수행합니다.
경쟁 상황을 방지하면서 선점식 작업 전달을 구현하는 데 적합합니다.
소스 큐가 비어 있을 경우nil, 'not found'가 반환됩니다.
예시
local value, err = LCC.kvdb.queue.move("처리 대기", "front", "진행 중", "back")
if value then
print("작업 선점:", value)
end