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