Projektstart
This commit is contained in:
64
backend/node_modules/bullmq/dist/esm/scripts/pause-7.js
generated
vendored
Normal file
64
backend/node_modules/bullmq/dist/esm/scripts/pause-7.js
generated
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
const content = `--[[
|
||||
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
|
||||
--[[
|
||||
Add delay marker if needed.
|
||||
]]
|
||||
-- Includes
|
||||
--[[
|
||||
Function to return the next delayed job timestamp.
|
||||
]]
|
||||
local function getNextDelayedTimestamp(delayedKey)
|
||||
local result = rcall("ZRANGE", delayedKey, 0, 0, "WITHSCORES")
|
||||
if #result then
|
||||
local nextTimestamp = tonumber(result[2])
|
||||
if nextTimestamp ~= nil then
|
||||
return nextTimestamp / 0x1000
|
||||
end
|
||||
end
|
||||
end
|
||||
local function addDelayMarkerIfNeeded(markerKey, delayedKey)
|
||||
local nextTimestamp = getNextDelayedTimestamp(delayedKey)
|
||||
if nextTimestamp ~= nil then
|
||||
-- Replace the score of the marker with the newest known
|
||||
-- next timestamp.
|
||||
rcall("ZADD", markerKey, nextTimestamp, "1")
|
||||
end
|
||||
end
|
||||
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]);
|
||||
`;
|
||||
export const pause = {
|
||||
name: 'pause',
|
||||
content,
|
||||
keys: 7,
|
||||
};
|
||||
//# sourceMappingURL=pause-7.js.map
|
||||
Reference in New Issue
Block a user