@@ -453,14 +453,26 @@ def _save_status(self, status, updates=None, exception=False, w=None, j=None):
453453 return
454454
455455 with context .connections .redis .pipeline (transaction = False ) as pipe :
456- if status != "started" and "raw_queue" not in self .data :
457- if status == "queued" and self .data ["status" ] != "started" :
458- print ("INCR" , self .data ["queue" ])
459- pipe .incr ("queuesize:%s" % self .data ["queue" ])
460- else :
461- print ("DECR" , self .data ["queue" ], self .data )
456+ queue = (updates or {}).get ("queue" ) or self .data ["queue" ]
457+ if status != "started" :
458+ # Queue change
459+ if queue != self .data ["queue" ]:
462460 pipe .decr ("queuesize:%s" % self .data ["queue" ])
463- pipe .expire ("queuesize:%s" % self .data ["queue" ], context .get_current_config ().get ("queue_ttl" ))
461+ if status == "queued" :
462+ pipe .incr ("queuesize:%s" % queue )
463+
464+ # Regular queues
465+ elif status == "queued" and self .data .get ("status" ) != "started" :
466+ pipe .incr ("queuesize:%s" % queue )
467+
468+ elif status != "queued" and not self .data .get ("raw_queue" ):
469+ pipe .decr ("queuesize:%s" % queue )
470+
471+ # Raw queues retries
472+ elif (updates or {}).get ("retry_count" , 0 ) > self .data .get ("retry_count" , 0 ):
473+ pipe .incr ("queuesize:%s" % queue )
474+
475+ pipe .expire ("queuesize:%s" % queue , context .get_current_config ().get ("queue_ttl" ))
464476 pipe .execute ()
465477
466478 now = datetime .datetime .utcnow ()
@@ -637,7 +649,6 @@ def queue_job(main_task_path, params, **kwargs):
637649 return queue_jobs (main_task_path , [params ], ** kwargs )[0 ]
638650
639651def set_queues_size (size_by_queues , action = "incr" ):
640- print ("BLA" , size_by_queues , action )
641652 if len (size_by_queues ) > 0 :
642653 with context .connections .redis .pipeline (transaction = False ) as pipe :
643654 for queue in size_by_queues :
0 commit comments