local pending_jobs_set = KEYS[1]
local worker_set = KEYS[2]
local dead_jobs_set = KEYS[3]
local failed_jobs_set = KEYS[4]
local success_jobs_set = KEYS[5]
local workers = redis.call("zrangebyscore", worker_set, 0, "+inf")
local running_count = 0
for _, worker_inflight_set in ipairs(workers) do
running_count = running_count + redis.call("SCARD", worker_inflight_set)
end
local pending_count = redis.call('LLEN', pending_jobs_set)
local dead_count = redis.call('ZCARD', dead_jobs_set)
local failed_count = redis.call('ZCARD', failed_jobs_set)
local success_count = redis.call('ZCARD', success_jobs_set)
return { pending_count, running_count, dead_count, failed_count, success_count }