Obfuscation/lua_scripts/queue.lua

28 lines
659 B
Lua

local M = {}
local function get_key(key)
return "queue:" .. key
end
function M.enqueue(key, value)
local queue = ngx.shared.build_queue:get(key)
local list = queue and cjson.decode(queue) or {}
table.insert(list, value)
ngx.shared.build_queue:set(key, cjson.encode(list))
end
function M.dequeue(key)
local queue = ngx.shared.build_queue:get(key)
if not queue then return nil end
local list = cjson.decode(queue)
local next = table.remove(list, 1)
if #list == 0 then
ngx.shared.build_queue:delete(key)
else
ngx.shared.build_queue:set(key, cjson.encode(list))
end
return next
end
return M