| 1234567891011121314151617181920212223242526272829303132333435 |
- --[[
- Get counts per provided states
- Input:
- KEYS[1] wait key
- KEYS[2] paused key
- KEYS[3] meta key
- KEYS[4] prioritized key
- ARGV[1...] priorities
- ]]
- local rcall = redis.call
- local results = {}
- local waitKey = KEYS[1]
- local pausedKey = KEYS[2]
- local prioritizedKey = KEYS[4]
- -- Includes
- --- @include "includes/isQueuePaused"
- for i = 1, #ARGV do
- local priority = tonumber(ARGV[i])
- if priority == 0 then
- if isQueuePaused(KEYS[3]) then
- results[#results+1] = rcall("LLEN", pausedKey)
- else
- results[#results+1] = rcall("LLEN", waitKey)
- end
- else
- results[#results+1] = rcall("ZCOUNT", prioritizedKey,
- priority * 0x100000000, (priority + 1) * 0x100000000 - 1)
- end
- end
- return results
|