--[[ Functions to remove jobs when removeOnFail option is provided. ]] -- Includes --- @include "removeJob" --- @include "removeJobsByMaxAge" --- @include "removeJobsByMaxCount" local function removeJobsOnFail(queueKeyPrefix, failedKey, jobId, opts, timestamp) local removeOnFailType = type(opts["removeOnFail"]) if removeOnFailType == "number" then removeJobsByMaxCount(opts["removeOnFail"], failedKey, queueKeyPrefix) elseif removeOnFailType == "boolean" then if opts["removeOnFail"] then removeJob(jobId, false, queueKeyPrefix, false --[[remove debounce key]]) rcall("ZREM", failedKey, jobId) end elseif removeOnFailType ~= "nil" then local maxAge = opts["removeOnFail"]["age"] local maxCount = opts["removeOnFail"]["count"] if maxAge ~= nil then removeJobsByMaxAge(timestamp, maxAge, failedKey, queueKeyPrefix) end if maxCount ~= nil and maxCount > 0 then removeJobsByMaxCount(maxCount, failedKey, queueKeyPrefix) end end end