20 lines
588 B
Lua
20 lines
588 B
Lua
|
|
--[[
|
||
|
|
Function to debounce a job.
|
||
|
|
]]
|
||
|
|
|
||
|
|
local function debounceJob(prefixKey, debounceId, ttl, jobId, debounceKey, token)
|
||
|
|
if debounceId ~= "" then
|
||
|
|
local debounceKeyExists
|
||
|
|
if ttl ~= "" then
|
||
|
|
debounceKeyExists = not rcall('SET', debounceKey, jobId, 'PX', ttl, 'NX')
|
||
|
|
else
|
||
|
|
debounceKeyExists = not rcall('SET', debounceKey, jobId, 'NX')
|
||
|
|
end
|
||
|
|
if debounceKeyExists then
|
||
|
|
local currentDebounceJobId = rcall('GET', debounceKey)
|
||
|
|
rcall("PUBLISH", prefixKey .. "debounced@" .. token, currentDebounceJobId)
|
||
|
|
|
||
|
|
return currentDebounceJobId
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|