buz 2.15.8rc1__py3-none-any.whl → 2.15.10rc1__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.
@@ -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,
@@ -104,7 +107,7 @@ class AIOKafkaConsumer:
104
107
  ),
105
108
  session_timeout_ms=self.__session_timeout_ms,
106
109
  heartbeat_interval_ms=self.__heartbeat_interval_ms,
107
- partition_assignment_strategy=list(self.__partition_assignors),
110
+ # partition_assignment_strategy=list(self.__partition_assignors),
108
111
  max_poll_interval_ms=self.__max_poll_interval_ms,
109
112
  rebalance_timeout_ms=self.__max_poll_interval_ms,
110
113
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buz
3
- Version: 2.15.8rc1
3
+ Version: 2.15.10rc1
4
4
  Summary: Buz is a set of light, simple and extensible implementations of event, command and query buses.
5
5
  License: MIT
6
6
  Author: Luis Pintado Lozano
@@ -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=13CqXqXk_1tgVJ6SpXpW4nr2SMA7ujpm8l4q3Yhtdsg,20179
51
- buz/event/infrastructure/buz_kafka/buz_aiokafka_async_consumer.py,sha256=lLHUnf9DpfAyB0PN7oBjn-Eyyl0zCHsSnrb6QUigruk,6345
52
- buz/event/infrastructure/buz_kafka/buz_aiokafka_multi_threaded_consumer.py,sha256=CiuNTns6eifR2JNGhXGNTdWURu-IQVIioe5n_pMSt9s,6288
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=9ORj5couBePn5LtIlTXUlMF2hSOuZ5vmgG0RUbw-BVM,8792
167
+ buz/kafka/infrastructure/aiokafka/aiokafka_consumer.py,sha256=5m9XfSRH15wNblqpb-l8cqqIEtDFbpwySzYK_hSuXc4,8952
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.8rc1.dist-info/LICENSE,sha256=Jytu2S-2SPEgsB0y6BF-_LUxIWY7402fl0JSh36TLZE,1062
254
- buz-2.15.8rc1.dist-info/METADATA,sha256=EcA5CSIiqruT_bLWz0GS6LaFdRbbbJiG_Stg9zspIug,1600
255
- buz-2.15.8rc1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
256
- buz-2.15.8rc1.dist-info/RECORD,,
253
+ buz-2.15.10rc1.dist-info/LICENSE,sha256=Jytu2S-2SPEgsB0y6BF-_LUxIWY7402fl0JSh36TLZE,1062
254
+ buz-2.15.10rc1.dist-info/METADATA,sha256=bUl0KIsBwcN6w-eRU9C5zf_ZTaGk2o8ZnECnaaVUkck,1601
255
+ buz-2.15.10rc1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
256
+ buz-2.15.10rc1.dist-info/RECORD,,