| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- --[[
- 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
|