11import asyncio
22import sys
33import traceback
4- from datetime import datetime , timedelta
4+ from datetime import datetime
55from functools import total_ordering
66from typing import Dict , List , Optional , Tuple , Union , Self , Any
77
@@ -317,7 +317,6 @@ def enqueue_job(
317317 job_model .status = JobStatus .QUEUED
318318 job_model .enqueued_at = utcnow ()
319319 job_model .save (connection = pipe )
320- job_model .expire (ttl = job_model .job_info_ttl , connection = pipe )
321320
322321 if self ._is_async :
323322 if at_front :
@@ -326,10 +325,13 @@ def enqueue_job(
326325 score = self .queued_job_registry .get_last_timestamp () or current_timestamp ()
327326 self .scheduled_job_registry .delete (connection = pipe , job_name = job_model .name )
328327 self .queued_job_registry .add (connection = pipe , score = score , job_name = job_model .name )
329- result = pipe .execute ()
330- logger .debug (f"Pushed job { job_model .name } into { self .name } , { result [ 3 ] } job(s) are in queue. " )
328+ pipe .execute ()
329+ logger .debug (f"Pushed job { job_model .name } into { self .name } queued-jobs registry " )
331330 else : # sync mode
331+ pipe .execute ()
332332 job_model = self .run_sync (job_model )
333+ job_model .expire (ttl = job_model .job_info_ttl , connection = pipe )
334+ pipe .execute ()
333335
334336 return job_model
335337
@@ -446,17 +448,18 @@ def cancel_job(self, job_name: str) -> None:
446448 # caller to handle it
447449 raise
448450
449- def delete_job (self , job_name : str ) :
451+ def delete_job (self , job_name : str , expire_job_model : bool = True ) -> None :
450452 """Deletes the given job from the queue and all its registries"""
451-
452453 pipe = self .connection .pipeline ()
453454
454455 while True :
455456 try :
456457 self ._remove_from_registries (job_name , connection = pipe )
457458 self .failed_job_registry .delete (connection = pipe , job_name = job_name )
458- if JobModel .exists (job_name , connection = self .connection ):
459- JobModel .delete_many ([job_name ], connection = pipe )
459+ if expire_job_model :
460+ job_model = JobModel .get (job_name , connection = self .connection )
461+ if job_model is not None :
462+ job_model .expire (ttl = job_model .job_info_ttl , connection = pipe )
460463 pipe .execute ()
461464 break
462465 except WatchError :
0 commit comments