Projektstart

This commit is contained in:
2026-01-22 15:49:12 +01:00
parent 7212eb6f7a
commit 57e5f652f8
10637 changed files with 2598792 additions and 64 deletions

View File

@@ -0,0 +1,42 @@
--[[
Pauses or resumes a queue globably.
Input:
KEYS[1] 'wait' or 'paused''
KEYS[2] 'paused' or 'wait'
KEYS[3] 'meta'
KEYS[4] 'prioritized'
KEYS[5] events stream key
KEYS[6] 'delayed'
KEYS|7] 'marker'
ARGV[1] 'paused' or 'resumed'
Event:
publish paused or resumed event.
]]
local rcall = redis.call
-- Includes
--- @include "includes/addDelayMarkerIfNeeded"
local markerKey = KEYS[7]
local hasJobs = rcall("EXISTS", KEYS[1]) == 1
--TODO: check this logic to be reused when changing a delay
if hasJobs then rcall("RENAME", KEYS[1], KEYS[2]) end
if ARGV[1] == "paused" then
rcall("HSET", KEYS[3], "paused", 1)
rcall("DEL", markerKey)
else
rcall("HDEL", KEYS[3], "paused")
if hasJobs or rcall("ZCARD", KEYS[4]) > 0 then
-- Add marker if there are waiting or priority jobs
rcall("ZADD", markerKey, 0, "0")
else
addDelayMarkerIfNeeded(markerKey, KEYS[6])
end
end
rcall("XADD", KEYS[5], "*", "event", ARGV[1]);