Files
simple-mail-cleaner/backend/node_modules/bullmq/dist/esm/commands/includes/getJobSchedulerEveryNextMillis.lua
2026-01-22 15:49:12 +01:00

29 lines
894 B
Lua

local function getJobSchedulerEveryNextMillis(prevMillis, every, now, offset, startDate)
local nextMillis
if not prevMillis then
if startDate then
-- Assuming startDate is passed as milliseconds from JavaScript
nextMillis = tonumber(startDate)
nextMillis = nextMillis > now and nextMillis or now
else
nextMillis = now
end
else
nextMillis = prevMillis + every
-- check if we may have missed some iterations
if nextMillis < now then
nextMillis = math.floor(now / every) * every + every + (offset or 0)
end
end
if not offset or offset == 0 then
local timeSlot = math.floor(nextMillis / every) * every;
offset = nextMillis - timeSlot;
end
-- Return a tuple nextMillis, offset
return math.floor(nextMillis), math.floor(offset)
end