Перейти к основному содержимому

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