59 lines
1.3 KiB
Lua
59 lines
1.3 KiB
Lua
|
|
--[[
|
|
Removes a repeatable job
|
|
Input:
|
|
KEYS[1] repeat jobs key
|
|
KEYS[2] delayed jobs key
|
|
KEYS[3] events key
|
|
|
|
ARGV[1] old repeat job id
|
|
ARGV[2] options concat
|
|
ARGV[3] repeat job key
|
|
ARGV[4] prefix key
|
|
|
|
Output:
|
|
0 - OK
|
|
1 - Missing repeat job
|
|
|
|
Events:
|
|
'removed'
|
|
]]
|
|
local rcall = redis.call
|
|
local millis = rcall("ZSCORE", KEYS[1], ARGV[2])
|
|
|
|
-- Includes
|
|
--- @include "includes/removeJobKeys"
|
|
|
|
-- legacy removal TODO: remove in next breaking change
|
|
if millis then
|
|
-- Delete next programmed job.
|
|
local repeatJobId = ARGV[1] .. millis
|
|
if(rcall("ZREM", KEYS[2], repeatJobId) == 1) then
|
|
removeJobKeys(ARGV[4] .. repeatJobId)
|
|
rcall("XADD", KEYS[3], "*", "event", "removed", "jobId", repeatJobId, "prev", "delayed");
|
|
end
|
|
end
|
|
|
|
if(rcall("ZREM", KEYS[1], ARGV[2]) == 1) then
|
|
return 0
|
|
end
|
|
|
|
-- new removal
|
|
millis = rcall("ZSCORE", KEYS[1], ARGV[3])
|
|
|
|
if millis then
|
|
-- Delete next programmed job.
|
|
local repeatJobId = "repeat:" .. ARGV[3] .. ":" .. millis
|
|
if(rcall("ZREM", KEYS[2], repeatJobId) == 1) then
|
|
removeJobKeys(ARGV[4] .. repeatJobId)
|
|
rcall("XADD", KEYS[3], "*", "event", "removed", "jobId", repeatJobId, "prev", "delayed")
|
|
end
|
|
end
|
|
|
|
if(rcall("ZREM", KEYS[1], ARGV[3]) == 1) then
|
|
rcall("DEL", KEYS[1] .. ":" .. ARGV[3])
|
|
return 0
|
|
end
|
|
|
|
return 1
|