Атомарное перемещение элемента очереди (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