跳到主要内容

原子移动队列元素 (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