From 28a3cbf41acc3b5490fd690389545eb7f423a29f Mon Sep 17 00:00:00 2001 From: Matt Brown Date: Wed, 31 Aug 2022 13:22:19 +0200 Subject: [PATCH] make the current Locker instance available on Que.locker This allows users of Que to access the current Locker instance to inspect it's state. --- lib/que/locker.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/que/locker.rb b/lib/que/locker.rb index 013393b6..b823a742 100644 --- a/lib/que/locker.rb +++ b/lib/que/locker.rb @@ -7,6 +7,10 @@ require 'set' module Que + class << self + attr_accessor :locker + end + Listener::MESSAGE_FORMATS[:job_available] = { queue: String, @@ -71,6 +75,11 @@ def initialize( Que.assert Array, worker_priorities worker_priorities.each { |p| Que.assert([Integer, NilClass], p) } + # We assign this globally because we only ever expect one locker to be + # created per worker process. This can be used by middleware or external + # code to access the locker during runtime. + Que.locker = self + # We use a JobBuffer to track jobs and pass them to workers, and a # ResultQueue to receive messages from workers. @job_buffer = JobBuffer.new(