You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
588 B
20 lines
588 B
--[[
|
|
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 |