Files
simple-mail-cleaner/backend/node_modules/bullmq/dist/esm/commands/includes/isLocked.lua
2026-01-22 15:49:12 +01:00

35 lines
957 B
Lua

--[[
Function to recursively check if there are no locks
on the jobs to be removed.
returns:
boolean
]]
--- @include "destructureJobKey"
local function isLocked( prefix, jobId, removeChildren)
local jobKey = prefix .. jobId;
-- Check if this job is locked
local lockKey = jobKey .. ':lock'
local lock = rcall("GET", lockKey)
if not lock then
if removeChildren == "1" then
local dependencies = rcall("SMEMBERS", jobKey .. ":dependencies")
if (#dependencies > 0) then
for i, childJobKey in ipairs(dependencies) do
-- We need to get the jobId for this job.
local childJobId = getJobIdFromKey(childJobKey)
local childJobPrefix = getJobKeyPrefix(childJobKey, childJobId)
local result = isLocked( childJobPrefix, childJobId, removeChildren )
if result then
return true
end
end
end
end
return false
end
return true
end