Files
travel-app/node_modules/bullmq/dist/cjs/commands/includes/removeJobsByMaxAge.lua
2026-08-09 21:56:00 +00:00

25 lines
690 B
Lua

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