23
23
24
24
class _KombuConsumer (ConsumerMixin ):
25
25
26
- def __init__ (self , url , exchange_name , queue_name , prefetch_count , callback ):
26
+ def __init__ (self , url , exchange_name , queue_name , prefetch_count , callback , cqrs_ids = None ):
27
27
self .connection = Connection (url )
28
28
self .exchange = Exchange (
29
29
exchange_name ,
@@ -34,28 +34,31 @@ def __init__(self, url, exchange_name, queue_name, prefetch_count, callback):
34
34
self .prefetch_count = prefetch_count
35
35
self .callback = callback
36
36
self .queues = []
37
+ self .cqrs_ids = cqrs_ids
38
+
37
39
self ._init_queues ()
38
40
39
41
def _init_queues (self ):
40
42
channel = self .connection .channel ()
41
43
for cqrs_id in ReplicaRegistry .models .keys ():
42
- q = Queue (
43
- self .queue_name ,
44
- exchange = self .exchange ,
45
- routing_key = cqrs_id ,
46
- )
47
- q .maybe_bind (channel )
48
- q .declare ()
49
- self .queues .append (q )
50
-
51
- sync_q = Queue (
52
- self .queue_name ,
53
- exchange = self .exchange ,
54
- routing_key = 'cqrs.{0}.{1}' .format (self .queue_name , cqrs_id ),
55
- )
56
- sync_q .maybe_bind (channel )
57
- sync_q .declare ()
58
- self .queues .append (sync_q )
44
+ if (not self .cqrs_ids ) or (cqrs_id in self .cqrs_ids ):
45
+ q = Queue (
46
+ self .queue_name ,
47
+ exchange = self .exchange ,
48
+ routing_key = cqrs_id ,
49
+ )
50
+ q .maybe_bind (channel )
51
+ q .declare ()
52
+ self .queues .append (q )
53
+
54
+ sync_q = Queue (
55
+ self .queue_name ,
56
+ exchange = self .exchange ,
57
+ routing_key = 'cqrs.{0}.{1}' .format (self .queue_name , cqrs_id ),
58
+ )
59
+ sync_q .maybe_bind (channel )
60
+ sync_q .declare ()
61
+ self .queues .append (sync_q )
59
62
60
63
def get_consumers (self , Consumer , channel ):
61
64
return [
@@ -77,7 +80,7 @@ def clean_connection(cls):
77
80
pass
78
81
79
82
@classmethod
80
- def consume (cls ):
83
+ def consume (cls , cqrs_ids = None ):
81
84
queue_name , prefetch_count = cls ._get_consumer_settings ()
82
85
url , exchange_name = cls ._get_common_settings ()
83
86
@@ -87,6 +90,7 @@ def consume(cls):
87
90
queue_name ,
88
91
prefetch_count ,
89
92
cls ._consume_message ,
93
+ cqrs_ids = cqrs_ids ,
90
94
)
91
95
consumer .run ()
92
96
0 commit comments