@@ -36,13 +36,16 @@ export class SqsConsumerQueueProviderImpl implements OnModuleInit, OnModuleDestr
3636  } 
3737
3838  async  onModuleInit ( )  { 
39-     this . logger . log ( 'SqsConsumerQueueProviderImpl  initialized.' ) ; 
39+     this . logger . log ( 'SQS Consumer  initialized.' ) ; 
4040  } 
4141
4242  async  onModuleDestroy ( )  { 
4343    this . isShuttingDown  =  true ; 
44-     this . logger . log ( 'Shutting down SqsConsumerQueueProviderImpl ...' ) ; 
44+     this . logger . log ( 'Shutting down sqs consumer ...' ) ; 
4545    this . stopAllPolling ( ) ; 
46+ 
47+     await  Promise . all ( [ ...this . pollingIntervals . values ( ) ] . map ( interval  =>  clearTimeout ( interval ) ) ) ; 
48+     this . logger . log ( 'All polling operations stopped.' ) ; 
4649  } 
4750
4851  registerQueueHandler ( queueConfig : QueueConfig ,  handler : SqsHandler )  { 
@@ -87,14 +90,14 @@ export class SqsConsumerQueueProviderImpl implements OnModuleInit, OnModuleDestr
8790              await  handler ( message ) ; 
8891              await  this . deleteMessage ( url ,  message . ReceiptHandle ! ) ; 
8992            }  catch  ( error )  { 
90-               this . logger . error ( `[${ name } ${ error . message }  ) ; 
93+               this . logger . error ( `[${ name } ${ error . message }  ,   error . stack ) ; 
9194              await  this . extendVisibilityTimeout ( url ,  message . ReceiptHandle ! ,  queueConfig . visibilityTimeout  ||  30 ) ; 
9295            } 
9396          } 
9497          backoffTime  =  1000 ; 
9598        } 
9699      }  catch  ( error )  { 
97-         this . logger . error ( `[${ name } Error receiving messages : ${ error . message }  ) ; 
100+         this . logger . error ( `[${ name } Unhandled error : ${ error . message }  ,   error . stack ) ; 
98101      }  finally  { 
99102        if  ( ! this . isShuttingDown )  { 
100103          backoffTime  =  Math . min ( backoffTime  *  2 ,  maxBackoffTime ) ; 
@@ -110,6 +113,11 @@ export class SqsConsumerQueueProviderImpl implements OnModuleInit, OnModuleDestr
110113  } 
111114
112115  private  async  deleteMessage ( queueUrl : string ,  receiptHandle : string )  { 
116+     if  ( ! receiptHandle )  { 
117+       this . logger . warn ( `Invalid receipt handle for queue: ${ queueUrl }  ) ; 
118+       return ; 
119+     } 
120+ 
113121    try  { 
114122      const  command  =  new  DeleteMessageCommand ( { 
115123        QueueUrl : queueUrl , 
@@ -123,6 +131,11 @@ export class SqsConsumerQueueProviderImpl implements OnModuleInit, OnModuleDestr
123131  } 
124132
125133  private  async  extendVisibilityTimeout ( queueUrl : string ,  receiptHandle : string ,  visibilityTimeout : number )  { 
134+     if  ( ! receiptHandle )  { 
135+       this . logger . warn ( `Invalid receipt handle for queue: ${ queueUrl }  ) ; 
136+       return ; 
137+     } 
138+ 
126139    try  { 
127140      const  command  =  new  ChangeMessageVisibilityCommand ( { 
128141        QueueUrl : queueUrl , 
@@ -132,7 +145,7 @@ export class SqsConsumerQueueProviderImpl implements OnModuleInit, OnModuleDestr
132145      await  this . sqsClient . send ( command ) ; 
133146      this . logger . debug ( `Extended visibility timeout for message in queue: ${ queueUrl }  ) ; 
134147    }  catch  ( error )  { 
135-       this . logger . error ( `Error extending visibility timeout for queue: ${ queueUrl } ${ error . message }  ) ; 
148+       this . logger . error ( `Error extending visibility timeout for queue: ${ queueUrl } ${ error . message }  ,   error . stack ) ; 
136149    } 
137150  } 
138151
0 commit comments