bull使用一个格式为[keyPrefix]:[queueName]:[id]:lock的key来锁定 job 的运行时状态
有两个setting和它有关
/** 锁持续时间,默认30s */
lockDuration?: number | undefined;
/** 锁定时刷新周期,默认15s */
lockRenewTime?: number | undefined;
加锁的位置是job进入运行状态时的 moveToActive 脚本,锁的value是queue的唯一token
-- get a lock
local jobKey = ARGV[1] .. jobId
local lockKey = jobKey .. ':lock'
rcall("SET", lockKey, ARGV[2], "PX", ARGV[3]) -- set job lock , value is queue token
释放锁的位置是 job 完成退出运行时状态的 moveToFinished 脚本
if rcall("EXISTS", KEYS[3]) == 1 then -- // Make sure job exists
if ARGV[5] ~= "