原子移動佇列元素 (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