buz 2.15.8rc1__py3-none-any.whl → 2.15.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- buz/event/infrastructure/buz_kafka/base_buz_aiokafka_async_consumer.py +9 -0
- buz/event/infrastructure/buz_kafka/buz_aiokafka_async_consumer.py +2 -0
- buz/event/infrastructure/buz_kafka/buz_aiokafka_multi_threaded_consumer.py +2 -0
- buz/kafka/infrastructure/aiokafka/aiokafka_consumer.py +3 -0
- {buz-2.15.8rc1.dist-info → buz-2.15.9.dist-info}/METADATA +1 -1
- {buz-2.15.8rc1.dist-info → buz-2.15.9.dist-info}/RECORD +8 -8
- {buz-2.15.8rc1.dist-info → buz-2.15.9.dist-info}/LICENSE +0 -0
- {buz-2.15.8rc1.dist-info → buz-2.15.9.dist-info}/WHEEL +0 -0
|
@@ -65,6 +65,7 @@ class BaseBuzAIOKafkaAsyncConsumer(AsyncConsumer):
|
|
|
65
65
|
max_poll_interval_ms: Optional[int] = None,
|
|
66
66
|
heartbeat_interval_ms: Optional[int] = None,
|
|
67
67
|
wait_for_connection_to_cluster_ms: Optional[int] = None,
|
|
68
|
+
worker_instance_id: Optional[str] = None,
|
|
68
69
|
):
|
|
69
70
|
self.__connection_config = connection_config
|
|
70
71
|
self.__consume_strategy = consume_strategy
|
|
@@ -104,6 +105,7 @@ class BaseBuzAIOKafkaAsyncConsumer(AsyncConsumer):
|
|
|
104
105
|
max_number_of_concurrent_polling_tasks or self.__MAX_NUMBER_OF_CONCURRENT_POLLING_TASKS
|
|
105
106
|
)
|
|
106
107
|
self.__wait_for_connection_to_cluster_ms: Optional[int] = wait_for_connection_to_cluster_ms
|
|
108
|
+
self.__worker_instance_id: Optional[str] = worker_instance_id
|
|
107
109
|
self.__polling_tasks_semaphore = Semaphore(self.__max_number_of_concurrent_polling_tasks)
|
|
108
110
|
self.__consumer_and_partition_mutex: dict[str, Lock] = defaultdict(Lock)
|
|
109
111
|
self.__is_worked_initialized = False
|
|
@@ -151,6 +153,7 @@ class BaseBuzAIOKafkaAsyncConsumer(AsyncConsumer):
|
|
|
151
153
|
def __print_worker_configuration(self) -> None:
|
|
152
154
|
self._logger.info(
|
|
153
155
|
f"Consumer configuration:\n"
|
|
156
|
+
f" - Worker instance id: {self.__worker_instance_id}\n"
|
|
154
157
|
f" - Consume strategy: {self.__consume_strategy}\n"
|
|
155
158
|
f" - Max queue size: {self.__max_queue_size}\n"
|
|
156
159
|
f" - Max records retrieved per poll: {self.__max_records_retrieved_per_poll}\n"
|
|
@@ -215,6 +218,7 @@ class BaseBuzAIOKafkaAsyncConsumer(AsyncConsumer):
|
|
|
215
218
|
topics = self.__consume_strategy.get_topics(subscriber)
|
|
216
219
|
kafka_consumer = AIOKafkaConsumer(
|
|
217
220
|
consumer_group=self.__consume_strategy.get_subscription_group(subscriber),
|
|
221
|
+
group_instance_id=self.__generate_consumer_group_instance_id(subscriber),
|
|
218
222
|
topics=topics,
|
|
219
223
|
connection_config=self.__connection_config,
|
|
220
224
|
initial_offset_position=self.__consumer_initial_offset_position,
|
|
@@ -243,6 +247,11 @@ class BaseBuzAIOKafkaAsyncConsumer(AsyncConsumer):
|
|
|
243
247
|
f"Initialized consumer group: '{kafka_consumer.get_consumer_group()}' subscribed to the topics: '{kafka_consumer.get_topics()}'"
|
|
244
248
|
)
|
|
245
249
|
|
|
250
|
+
def __generate_consumer_group_instance_id(self, subscriber: MetaSubscriber) -> Optional[str]:
|
|
251
|
+
if self.__worker_instance_id is None:
|
|
252
|
+
return None
|
|
253
|
+
return f"{subscriber.fqn()}-{self.__worker_instance_id}"
|
|
254
|
+
|
|
246
255
|
@abstractmethod
|
|
247
256
|
async def _create_kafka_consumer_executor(self, subscriber: MetaSubscriber) -> KafkaEventSubscriberExecutor:
|
|
248
257
|
pass
|
|
@@ -43,6 +43,7 @@ class BuzAIOKafkaAsyncConsumer(BaseBuzAIOKafkaAsyncConsumer):
|
|
|
43
43
|
logger: Logger,
|
|
44
44
|
consumer_initial_offset_position: ConsumerInitialOffsetPosition,
|
|
45
45
|
deserializers_per_subscriber: dict[MetaSubscriber, BytesToMessageDeserializer[T]],
|
|
46
|
+
worker_instance_id: Optional[str] = None,
|
|
46
47
|
consume_middlewares: Optional[Sequence[AsyncConsumeMiddleware]] = None,
|
|
47
48
|
consume_retrier: Optional[ConsumeRetrier] = None,
|
|
48
49
|
reject_callback: Optional[RejectCallback] = None,
|
|
@@ -77,6 +78,7 @@ class BuzAIOKafkaAsyncConsumer(BaseBuzAIOKafkaAsyncConsumer):
|
|
|
77
78
|
heartbeat_interval_ms=heartbeat_interval_ms,
|
|
78
79
|
health_check_port=health_check_port,
|
|
79
80
|
wait_for_connection_to_cluster_ms=wait_for_connection_to_cluster_ms,
|
|
81
|
+
worker_instance_id=worker_instance_id,
|
|
80
82
|
)
|
|
81
83
|
self.__on_fail_strategy = on_fail_strategy
|
|
82
84
|
self.__consume_middlewares = consume_middlewares
|
|
@@ -44,6 +44,7 @@ class BuzAIOKafkaMultiThreadedConsumer(BaseBuzAIOKafkaAsyncConsumer):
|
|
|
44
44
|
logger: Logger,
|
|
45
45
|
consumer_initial_offset_position: ConsumerInitialOffsetPosition,
|
|
46
46
|
deserializers_per_subscriber: dict[Subscriber, BytesToMessageDeserializer[T]],
|
|
47
|
+
worker_instance_id: Optional[str] = None,
|
|
47
48
|
consume_middlewares: Optional[Sequence[ConsumeMiddleware]] = None,
|
|
48
49
|
consume_retrier: Optional[ConsumeRetrier] = None,
|
|
49
50
|
reject_callback: Optional[RejectCallback] = None,
|
|
@@ -78,6 +79,7 @@ class BuzAIOKafkaMultiThreadedConsumer(BaseBuzAIOKafkaAsyncConsumer):
|
|
|
78
79
|
max_poll_interval_ms=max_poll_interval_ms,
|
|
79
80
|
heartbeat_interval_ms=heartbeat_interval_ms,
|
|
80
81
|
wait_for_connection_to_cluster_ms=wait_for_connection_to_cluster_ms,
|
|
82
|
+
worker_instance_id=worker_instance_id,
|
|
81
83
|
)
|
|
82
84
|
self.__on_fail_strategy = on_fail_strategy
|
|
83
85
|
self.__consume_middlewares = consume_middlewares
|
|
@@ -43,6 +43,7 @@ class AIOKafkaConsumer:
|
|
|
43
43
|
on_partition_revoked: Callable[[AIOKafkaConsumer, set[TopicPartition]], Awaitable[None]],
|
|
44
44
|
auto_create_topic_configuration: Optional[AutoCreateTopicConfiguration] = None,
|
|
45
45
|
wait_for_connection_to_cluster_ms: Optional[int] = None,
|
|
46
|
+
group_instance_id: Optional[str] = None,
|
|
46
47
|
) -> None:
|
|
47
48
|
self.__consumer_group = consumer_group
|
|
48
49
|
self.__topics = topics
|
|
@@ -57,6 +58,7 @@ class AIOKafkaConsumer:
|
|
|
57
58
|
self.__max_poll_interval_ms = max_poll_interval_ms
|
|
58
59
|
self.__heartbeat_interval_ms = heartbeat_interval_ms
|
|
59
60
|
self.__wait_for_connection_to_cluster_ms = wait_for_connection_to_cluster_ms
|
|
61
|
+
self.__group_instance_id = group_instance_id
|
|
60
62
|
self.__check_kafka_admin_client_is_needed()
|
|
61
63
|
self.__consumer = self.__generate_consumer()
|
|
62
64
|
|
|
@@ -90,6 +92,7 @@ class AIOKafkaConsumer:
|
|
|
90
92
|
|
|
91
93
|
consumer = AIOKafkaNativeConsumer(
|
|
92
94
|
None,
|
|
95
|
+
group_instance_id=self.__group_instance_id,
|
|
93
96
|
ssl_context=ssl_context,
|
|
94
97
|
bootstrap_servers=",".join(self.__connection_config.bootstrap_servers),
|
|
95
98
|
security_protocol=self.__connection_config.credentials.security_protocol.value,
|
|
@@ -47,9 +47,9 @@ buz/event/exceptions/worker_execution_exception.py,sha256=6mgztvXOCG_9VZ_Jptkk72
|
|
|
47
47
|
buz/event/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
48
|
buz/event/infrastructure/buz_kafka/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
49
|
buz/event/infrastructure/buz_kafka/async_buz_kafka_event_bus.py,sha256=SyLblUVlwWOaNfZzK7vL6Ee4m-85vZVCH0rjOgqVAww,4913
|
|
50
|
-
buz/event/infrastructure/buz_kafka/base_buz_aiokafka_async_consumer.py,sha256=
|
|
51
|
-
buz/event/infrastructure/buz_kafka/buz_aiokafka_async_consumer.py,sha256=
|
|
52
|
-
buz/event/infrastructure/buz_kafka/buz_aiokafka_multi_threaded_consumer.py,sha256
|
|
50
|
+
buz/event/infrastructure/buz_kafka/base_buz_aiokafka_async_consumer.py,sha256=pQQf9ASWg_Y84BxHHATOqiewZA_Ty7Oja_kuvS7H9cw,20688
|
|
51
|
+
buz/event/infrastructure/buz_kafka/buz_aiokafka_async_consumer.py,sha256=DRe3u69LD7Yt9WjA_hK_PRznM08_Mz4hxC_4poppjck,6446
|
|
52
|
+
buz/event/infrastructure/buz_kafka/buz_aiokafka_multi_threaded_consumer.py,sha256=-pJVJq3b2SFmPT7SNmdPhqN2o64Hsjwds-shQ-Y7ytg,6389
|
|
53
53
|
buz/event/infrastructure/buz_kafka/buz_kafka_event_bus.py,sha256=ymRSvcYVgbVCPgHN6rMBVBHQ5heCSwCDl6EffyqGVX8,4601
|
|
54
54
|
buz/event/infrastructure/buz_kafka/consume_strategy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
55
|
buz/event/infrastructure/buz_kafka/consume_strategy/consume_strategy.py,sha256=RqlXe5W2S6rH3FTr--tcxzFJTAVLb-Dhl7m6qjgNz2M,331
|
|
@@ -164,7 +164,7 @@ buz/kafka/domain/services/kafka_admin_test_client.py,sha256=91l_vFIo1yhJLQQCC_Om
|
|
|
164
164
|
buz/kafka/domain/services/kafka_producer.py,sha256=8bLTV328orrPHcARzkc6no4vyJzrArVtCsjmSRXDjos,506
|
|
165
165
|
buz/kafka/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
166
166
|
buz/kafka/infrastructure/aiokafka/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
167
|
-
buz/kafka/infrastructure/aiokafka/aiokafka_consumer.py,sha256=
|
|
167
|
+
buz/kafka/infrastructure/aiokafka/aiokafka_consumer.py,sha256=MImg7oft0_3X-oPd-tE9NC5HjsN13Sd-Xm3UU9APU-Y,8950
|
|
168
168
|
buz/kafka/infrastructure/aiokafka/aiokafka_producer.py,sha256=LteHKIHpT6MKplwmwsPYMsd2GWNJCzus65XDHCIdoN8,3823
|
|
169
169
|
buz/kafka/infrastructure/aiokafka/rebalance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
170
170
|
buz/kafka/infrastructure/aiokafka/rebalance/kafka_callback_rebalancer.py,sha256=3l7NkTrCt3rBktVIS73cTmCOvv6eFguoCbGMYIUfCFc,1774
|
|
@@ -250,7 +250,7 @@ buz/serializer/message_to_json_bytes_serializer.py,sha256=RGZJ64t4t4Pz2FCASZZCv-
|
|
|
250
250
|
buz/wrapper/__init__.py,sha256=GnRdJFcncn-qp0hzDG9dBHLmTJSbHFVjE_yr-MdW_n4,77
|
|
251
251
|
buz/wrapper/async_to_sync.py,sha256=OfK-vrVUhuN-LLLvekLdMbQYtH0ue5lfbvuasj6ovMI,698
|
|
252
252
|
buz/wrapper/event_loop.py,sha256=pfBJ1g-8A2a3YgW8Gf9Fg0kkewoh3-wgTy2KIFDyfHk,266
|
|
253
|
-
buz-2.15.
|
|
254
|
-
buz-2.15.
|
|
255
|
-
buz-2.15.
|
|
256
|
-
buz-2.15.
|
|
253
|
+
buz-2.15.9.dist-info/LICENSE,sha256=Jytu2S-2SPEgsB0y6BF-_LUxIWY7402fl0JSh36TLZE,1062
|
|
254
|
+
buz-2.15.9.dist-info/METADATA,sha256=mPD6hdEOJIe6xRVg-0_-uf9TSxiWVIQScl_gRpLrwXE,1597
|
|
255
|
+
buz-2.15.9.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
256
|
+
buz-2.15.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|