Skip to main content

# Atomically Move Queue Items (LCC.kvdb.queue.move)

## Signature​

    value, err = LCC.kvdb.queue.move(from_name, pop?, to_name, push?, timeout?)

## Parameters​

- from_name
  String. Source queue name (non-empty, max `256` bytes).
- pop
  String, optional. Pop direction of the source queue, `"front"` or `"back"`; defaults to `"front"`.
- to_name
  String. Destination queue name (non-empty, max `256` bytes).
- push
  String, optional. Push direction for the destination queue, `"front"` or `"back"`; defaults to `"back"`.
- timeout
  Number, optional. Request timeout in seconds, default `60`.

## Returns​

- value
  String. The moved entry; `nil` when the source queue is empty.
- err
  String or `nil`. Returns `'not found'` on empty source queues or when the operation fails.

## Notes​

> Atomically pops from the source queue and pushes into the destination.
> Ideal for task hand-offs without race conditions. Returns `nil, 'not found'` when the source queue is empty.

## Example​

    local value, err = LCC.kvdb.queue.move("pending", "front", "running", "back")
    if value then
        print("Claimed", value)
    end