local lock_result = redis.call('SET', KEYS[1], ARGV[1], 'NX', 'PX', ARGV[2])
if lock_result then
local removed_count = redis.call('ZREM', KEYS[2], ARGV[3])
if removed_count == 0 then
redis.call('DEL', KEYS[1])
return {0, 0}
end
redis.call('HSET', KEYS[3], 'status', 'ACTIVE', 'start_time', ARGV[4], 'worker_id', ARGV[1])
redis.call('ZADD', KEYS[4], ARGV[5], ARGV[3])
return {1, removed_count}
else
return {0, 0}
end