| 123456789101112131415161718192021222324 |
- --[[
- Functions to remove jobs by max age.
- ]]
- -- Includes
- --- @include "batches"
- --- @include "removeJob"
- local function removeJobsByMaxAge(timestamp, maxAge, targetSet, prefix, maxLimit)
- local start = timestamp - maxAge * 1000
- local jobIds = rcall("ZREVRANGEBYSCORE", targetSet, start, "-inf", "LIMIT", 0, maxLimit)
- for i, jobId in ipairs(jobIds) do
- removeJob(jobId, false, prefix, false --[[remove debounce key]])
- end
- if #jobIds > 0 then
- if #jobIds < maxLimit then
- rcall("ZREMRANGEBYSCORE", targetSet, "-inf", start)
- else
- for from, to in batches(#jobIds, 7000) do
- rcall("ZREM", targetSet, unpack(jobIds, from, to))
- end
- end
- end
- end
|