メインコンテンツへ移動

キュー末尾から取り出して削除する (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' を返します

説明​

キューの末尾から要素を 1 つ取り出し、その要素をキューから削除します。
一括モードでは、実際に取り出して削除した順序で最大 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