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

Извлечение из конца очереди (LCC.kvdb.queue.pop_back)

Сигнатура​

value, err = LCC.kvdb.queue.pop_back(name, timeout?)
values, err = LCC.kvdb.queue.pop_back({name = name, max = n}, timeout?)

Параметры​

  • name Строка, имя очереди (непустое, максимум 256 байт); при передаче {name = "...", max = n} выполняется пакетное извлечение
  • timeout
    Число, необязательный тайм-аут запроса (секунды), по умолчанию 60

Возвращаемое значение​

  • value
    Строка, извлечённый элемент; при пустой очереди — nil
  • values Массив строк, список извлечённых элементов в пакетном режиме; при пустой очереди — {}
  • err Строка или nil; в режиме одного значения при пустой или отсутствующей очереди возвращается 'not found'

Описание​

Извлекает один элемент из конца очереди.
В пакетном режиме возвращается не более max элементов в фактическом порядке извлечения. Подходит для сценариев потребления по принципу LIFO.

Пример​

local value, err = LCC.kvdb.queue.pop_back("待处理任务")
if value then
print("处理最新任务:", value)
end

local values, batch_err = LCC.kvdb.queue.pop_back({name = "待处理任务", max = 3})
for _, item in ipairs(values or {}) do
print("处理最新任务:", item)
end