@@ -196,6 +196,8 @@ def _add_to_dead_letter_queue(cls, channel, payload):
196196 @classmethod
197197 def _requeue_message (cls , channel , delivery_tag , payload ):
198198 payload .retries += 1
199+ payload .is_requeue = True
200+
199201 cls .produce (payload )
200202 cls ._nack (channel , delivery_tag )
201203 cls .log_requeued (payload )
@@ -230,6 +232,9 @@ def _get_produced_message_routing_key(cls, payload):
230232 elif getattr (payload , 'is_dead_letter' , False ):
231233 dead_letter_queue_name = cls ._get_consumer_settings ()[- 1 ]
232234 routing_key = 'cqrs.{}.{}' .format (dead_letter_queue_name , routing_key )
235+ elif getattr (payload , 'is_requeue' , False ):
236+ queue = cls ._get_consumer_settings ()[0 ]
237+ routing_key = 'cqrs.{}.{}' .format (queue , routing_key )
233238
234239 return routing_key
235240
@@ -249,7 +254,7 @@ def _get_consumer_rmq_objects(
249254 for cqrs_id , replica_model in ReplicaRegistry .models .items ():
250255 channel .queue_bind (exchange = exchange , queue = queue_name , routing_key = cqrs_id )
251256
252- # Every service must have specific SYNC routes
257+ # Every service must have specific SYNC or requeue routes
253258 channel .queue_bind (
254259 exchange = exchange ,
255260 queue = queue_name ,
0 commit comments