@@ -207,7 +207,6 @@ def greenlet_subqueues(self):
207207
208208 # Update the process-local list of known queues
209209 Queue .known_queues = Queue .redis_known_queues ()
210- Queue .paused_queues = Queue .redis_paused_queues ()
211210
212211 queues = []
213212 try :
@@ -228,6 +227,14 @@ def greenlet_subqueues(self):
228227
229228 time .sleep (self .config ["subqueues_refresh_interval" ])
230229
230+ def greenlet_paused_queues (self ):
231+
232+ while True :
233+
234+ # Update the process-local list of known queues
235+ Queue .paused_queues = Queue .redis_paused_queues ()
236+ time .sleep (self .config ["paused_queues_refresh_interval" ])
237+
231238 def get_memory (self ):
232239 mmaps = self .process .get_memory_maps ()
233240 mem = {
@@ -419,6 +426,10 @@ def work_init(self):
419426
420427 self .greenlets ["subqueues" ] = gevent .spawn (self .greenlet_subqueues )
421428
429+ # An interval of 0 disables the refresh
430+ if self .config ["paused_queues_refresh_interval" ] > 0 :
431+ self .greenlets ["paused_queues" ] = gevent .spawn (self .greenlet_paused_queues )
432+
422433 self .greenlets ["report" ] = gevent .spawn (self .greenlet_report )
423434
424435 self .greenlets ["logs" ] = gevent .spawn (self .greenlet_logs )
@@ -470,8 +481,7 @@ def work_loop(self, max_jobs=None):
470481 gevent .sleep (0.01 )
471482
472483 jobs = []
473- paused_queues = Queue .redis_paused_queues ()
474- available_queues = [queue for queue in self .queues if queue .id not in paused_queues ]
484+ available_queues = [queue for queue in self .queues if queue .id not in Queue .paused_queues ]
475485
476486 for queue_i in xrange (len (available_queues )):
477487
0 commit comments