跳至主要內容

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