From d9c0115cbc1af3b3fce7f12b43d80d9fc86fe218 Mon Sep 17 00:00:00 2001 From: mhenrixon Date: Sat, 17 Feb 2024 08:49:20 +0200 Subject: [PATCH] fix(perf): break out all way on found --- .../lua/shared/_delete_from_queue.lua | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/sidekiq_unique_jobs/lua/shared/_delete_from_queue.lua b/lib/sidekiq_unique_jobs/lua/shared/_delete_from_queue.lua index 7ca9b9c29..ffc0bc558 100644 --- a/lib/sidekiq_unique_jobs/lua/shared/_delete_from_queue.lua +++ b/lib/sidekiq_unique_jobs/lua/shared/_delete_from_queue.lua @@ -1,22 +1,22 @@ local function delete_from_queue(queue, digest) - local per = 50 - local total = redis.call("LLEN", queue) - local index = 0 + local per = 50 + local total = redis.call("LLEN", queue) local result = nil - while (index < total) do - local items = redis.call("LRANGE", queue, index, index + per -1) + for index = 0, total, per do + local items = redis.call("LRANGE", queue, index, index + per - 1) if #items == 0 then break end - for _, item in pairs(items) do + for _, item in ipairs(items) do if string.find(item, digest) then redis.call("LREM", queue, 1, item) result = item break end end - index = index + per + if result then break end end + return result end