@@ -52,19 +52,29 @@ async def archive_to_dlq(self, queue_name: str, msg_id: int, reason: str) -> Non
5252 return
5353
5454 envelope = EventEnvelope (** json .loads (msg ["message" ]))
55- updated = EventEnvelope (
56- event_id = envelope .event_id ,
57- correlation_id = envelope .correlation_id ,
58- event_type = envelope .event_type ,
59- emitted_by = envelope .emitted_by ,
60- emitted_at = envelope .emitted_at ,
61- payload = {** envelope .payload , "dlq_reason" : reason },
62- parent_event_id = envelope .parent_event_id ,
63- retry_count = envelope .retry_count + 1 ,
64- )
65-
6655 await self .delete (queue_name , msg_id )
67- if updated .retry_count >= MAX_RETRIES :
68- await self .send (f"{ queue_name } _dlq" , updated )
56+
57+ if envelope .retry_count + 1 >= MAX_RETRIES :
58+ dlq_envelope = EventEnvelope (
59+ event_id = envelope .event_id ,
60+ correlation_id = envelope .correlation_id ,
61+ event_type = envelope .event_type ,
62+ emitted_by = envelope .emitted_by ,
63+ emitted_at = envelope .emitted_at ,
64+ payload = {** envelope .payload , "dlq_reason" : reason },
65+ parent_event_id = envelope .parent_event_id ,
66+ retry_count = envelope .retry_count + 1 ,
67+ )
68+ await self .send (f"{ queue_name } _dlq" , dlq_envelope )
6969 else :
70- await self .send (queue_name , updated )
70+ requeue_envelope = EventEnvelope (
71+ event_id = envelope .event_id ,
72+ correlation_id = envelope .correlation_id ,
73+ event_type = envelope .event_type ,
74+ emitted_by = envelope .emitted_by ,
75+ emitted_at = envelope .emitted_at ,
76+ payload = envelope .payload ,
77+ parent_event_id = envelope .parent_event_id ,
78+ retry_count = envelope .retry_count + 1 ,
79+ )
80+ await self .send (queue_name , requeue_envelope )
0 commit comments