buz 2.15.1__py3-none-any.whl → 2.15.3__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.
@@ -1,6 +1,5 @@
1
1
  from asyncio import sleep
2
2
  from logging import Logger
3
- import traceback
4
3
  from typing import Optional, Sequence, cast
5
4
 
6
5
  from buz.event import Event
@@ -68,16 +67,10 @@ class KafkaEventAsyncSubscriberExecutor(KafkaEventSubscriberExecutor):
68
67
  headers=self.__header_deserializer.deserialize(kafka_poll_record.headers),
69
68
  ),
70
69
  )
71
-
72
70
  except NotValidKafkaMessageException:
73
71
  self.__logger.error(
74
72
  f'The message "{str(kafka_poll_record.value)}" is not valid, it will be consumed but not processed'
75
73
  )
76
- except Exception as exception:
77
- if self.__on_fail_strategy == KafkaOnFailStrategy.CONSUME_ON_FAIL:
78
- self.__logger.exception(f"Error consuming event: {traceback.format_exc()}")
79
- return
80
- raise exception
81
74
 
82
75
  async def __consumption_callback(self, subscriber: AsyncSubscriber, message: KafkaConsumerRecord[Event]) -> None:
83
76
  await self.__consume_middleware_chain_resolver.resolve(
@@ -89,8 +82,10 @@ class KafkaEventAsyncSubscriberExecutor(KafkaEventSubscriberExecutor):
89
82
  number_of_executions = 0
90
83
  while should_retry is True:
91
84
  try:
85
+ self.__register_retry(event, subscriber)
92
86
  number_of_executions += 1
93
87
  await subscriber.consume(event)
88
+ self.__clean_retry(event, subscriber)
94
89
  return
95
90
  except Exception as exception:
96
91
  if self.__should_retry(event, subscriber) is True:
@@ -102,7 +97,6 @@ class KafkaEventAsyncSubscriberExecutor(KafkaEventSubscriberExecutor):
102
97
  ),
103
98
  exc_info=exception,
104
99
  )
105
- self.__register_retry(event, subscriber)
106
100
  await sleep(self.__seconds_between_retires)
107
101
  continue
108
102
 
@@ -127,3 +121,9 @@ class KafkaEventAsyncSubscriberExecutor(KafkaEventSubscriberExecutor):
127
121
  return None
128
122
 
129
123
  return self.__consume_retrier.register_retry(event, [subscriber])
124
+
125
+ def __clean_retry(self, event: Event, subscriber: AsyncSubscriber) -> None:
126
+ if self.__consume_retrier is None:
127
+ return None
128
+
129
+ return self.__consume_retrier.clean_retries(event, [subscriber])
@@ -86,8 +86,10 @@ class KafkaEventSyncSubscriberExecutor(KafkaEventSubscriberExecutor):
86
86
  execution_number = 0
87
87
  while should_retry is True:
88
88
  try:
89
+ self.__register_retry(event, subscriber)
89
90
  execution_number += 1
90
91
  subscriber.consume(event)
92
+ self.__clean_retries(event, subscriber)
91
93
  return
92
94
  except Exception as exception:
93
95
  if self.__should_retry(event, subscriber) is True:
@@ -99,7 +101,6 @@ class KafkaEventSyncSubscriberExecutor(KafkaEventSubscriberExecutor):
99
101
  ),
100
102
  exc_info=exception,
101
103
  )
102
- self.__register_retry(event, subscriber)
103
104
  time.sleep(self.__seconds_between_retires)
104
105
  continue
105
106
 
@@ -124,3 +125,9 @@ class KafkaEventSyncSubscriberExecutor(KafkaEventSubscriberExecutor):
124
125
  return None
125
126
 
126
127
  return self.__consume_retrier.register_retry(event, [subscriber])
128
+
129
+ def __clean_retries(self, event: Event, subscriber: Subscriber) -> None:
130
+ if self.__consume_retrier is None:
131
+ return None
132
+
133
+ return self.__consume_retrier.clean_retries(event, [subscriber])
@@ -12,3 +12,7 @@ class ConsumeRetrier(ABC):
12
12
  @abstractmethod
13
13
  def register_retry(self, event: Event, subscribers: Sequence[MetaSubscriber]) -> None:
14
14
  pass
15
+
16
+ @abstractmethod
17
+ def clean_retries(self, event: Event, subscribers: Sequence[MetaSubscriber]) -> None:
18
+ pass
@@ -17,3 +17,7 @@ class ConsumedEventRetryRepository(ABC):
17
17
  self, event: Event, subscribers: Sequence[MetaSubscriber]
18
18
  ) -> ConsumedEventRetry:
19
19
  pass
20
+
21
+ @abstractmethod
22
+ def clean(self, event: Event, subscribers: Sequence[MetaSubscriber]) -> None:
23
+ pass
@@ -35,3 +35,6 @@ class MaxRetriesConsumeRetrier(ConsumeRetrier):
35
35
  )
36
36
  consumed_event_retry.register_retry()
37
37
  self.__consumed_event_retry_repository.save(consumed_event_retry)
38
+
39
+ def clean_retries(self, event: Event, subscribers: Sequence[MetaSubscriber]) -> None:
40
+ self.__consumed_event_retry_repository.clean(event, subscribers)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: buz
3
- Version: 2.15.1
3
+ Version: 2.15.3
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
@@ -58,9 +58,9 @@ buz/event/infrastructure/buz_kafka/consume_strategy/topic_and_subscription_group
58
58
  buz/event/infrastructure/buz_kafka/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
59
  buz/event/infrastructure/buz_kafka/exceptions/kafka_event_bus_config_not_valid_exception.py,sha256=VUKZXA2ygjg21P4DADFl_Tace6RwSXia1MRYvJypxbM,135
60
60
  buz/event/infrastructure/buz_kafka/exceptions/retry_exception.py,sha256=Fq9kvI3DpFsGD3x2icmQ1fYIsuKZAFqI3tCibAuEtSQ,441
61
- buz/event/infrastructure/buz_kafka/kafka_event_async_subscriber_executor.py,sha256=OGPuoFGKkaV0pLyBKqv_kHz-xCRFWcqHmJBGOfmJTfc,5845
61
+ buz/event/infrastructure/buz_kafka/kafka_event_async_subscriber_executor.py,sha256=hV-fNofLmj_286ZCO-YFOY4fMvGo4S2K0-KofzgJOdg,5838
62
62
  buz/event/infrastructure/buz_kafka/kafka_event_subscriber_executor.py,sha256=EyG2vsFYErWAyqxdXqSwxx5Zi_y0d6i0h05XavJMnxg,254
63
- buz/event/infrastructure/buz_kafka/kafka_event_sync_subscriber_executor.py,sha256=S9ECzWpUQm7YKEtOFuzZMZvRVaiAMyMVfNksJ7Jno9A,5600
63
+ buz/event/infrastructure/buz_kafka/kafka_event_sync_subscriber_executor.py,sha256=Kne6wiSQt_y2cVHoGtNK2N9-N59Wib8id77sjmXWsc4,5871
64
64
  buz/event/infrastructure/buz_kafka/publish_strategy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
65
  buz/event/infrastructure/buz_kafka/publish_strategy/publish_strategy.py,sha256=zIkgMnUU7ueG6QHEubMzdTHOtqdldIbS7k5FDLNmqVk,178
66
66
  buz/event/infrastructure/buz_kafka/publish_strategy/topic_per_event_kafka_publish_strategy.py,sha256=aLKj6GyLJNcMbuDA1QBa-RzWKBHEorBuPFkkqo_H60k,405
@@ -103,10 +103,10 @@ buz/event/strategies/execution_strategy/cyclic_iterator_execution_strategy.py,sh
103
103
  buz/event/strategies/execution_strategy/execution_strategy.py,sha256=sbr4N8Q19lWLrafh0obLitn8dJ-SahXgSV8aMKEP_LM,192
104
104
  buz/event/strategies/execution_strategy/self_process_execution_strategy.py,sha256=fE3qRF_nHAkiDXltKloj06--DPKpiZQcvNBVw1u-Hmo,385
105
105
  buz/event/strategies/retry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
- buz/event/strategies/retry/consume_retrier.py,sha256=DE8zxK5eSiimozq3tcRhOjZHjGM6nUKUIc0ygBtQcyg,421
106
+ buz/event/strategies/retry/consume_retrier.py,sha256=aXVXGahKBBRAuxz-24TTcRFR9_0aZGOO8bVBvujsmpw,545
107
107
  buz/event/strategies/retry/consumed_event_retry.py,sha256=sjRoSymBexiGTgh6g8V5ThzTCHiyrvE3WlMEFqcNZfY,205
108
- buz/event/strategies/retry/consumed_event_retry_repository.py,sha256=2LP2qEdrT69yVRGpBWQCCXQHWUobHPxUkShnzkLzTMQ,543
109
- buz/event/strategies/retry/max_retries_consume_retrier.py,sha256=6D5g5yknHFXAxpanisaIN8Rm8DECQbNhqPPRUeKI5G8,1579
108
+ buz/event/strategies/retry/consumed_event_retry_repository.py,sha256=Udls0pJEEXuizGG1-aGhnJ8RArD82MGOPU70Cizk1QI,659
109
+ buz/event/strategies/retry/max_retries_consume_retrier.py,sha256=hY-DrAI8MRZKDUHraY2nSsQHcUo50jzLwBZrmvN3L5I,1743
110
110
  buz/event/strategies/retry/max_retries_negative_exception.py,sha256=UdM5T4cxRv_at9GmNZXaE7Lcf6zX6jd7uaUAkBD9qvU,230
111
111
  buz/event/strategies/retry/reject_callback.py,sha256=TnmUt0AkB2DEQMieec9TtB7IAkRHdFAFepAclbiCRns,316
112
112
  buz/event/subscriber.py,sha256=WxppO8PFP5zO-gwLZNg1DKSY_uFdsF8JgWIJa6nTTds,237
@@ -249,7 +249,7 @@ buz/serializer/message_to_json_bytes_serializer.py,sha256=RGZJ64t4t4Pz2FCASZZCv-
249
249
  buz/wrapper/__init__.py,sha256=GnRdJFcncn-qp0hzDG9dBHLmTJSbHFVjE_yr-MdW_n4,77
250
250
  buz/wrapper/async_to_sync.py,sha256=OfK-vrVUhuN-LLLvekLdMbQYtH0ue5lfbvuasj6ovMI,698
251
251
  buz/wrapper/event_loop.py,sha256=pfBJ1g-8A2a3YgW8Gf9Fg0kkewoh3-wgTy2KIFDyfHk,266
252
- buz-2.15.1.dist-info/LICENSE,sha256=Jytu2S-2SPEgsB0y6BF-_LUxIWY7402fl0JSh36TLZE,1062
253
- buz-2.15.1.dist-info/METADATA,sha256=l97q8FugUX3QM1sBfMPtE0quiE4aIyEMgHkewN6k0NA,1659
254
- buz-2.15.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
255
- buz-2.15.1.dist-info/RECORD,,
252
+ buz-2.15.3.dist-info/LICENSE,sha256=Jytu2S-2SPEgsB0y6BF-_LUxIWY7402fl0JSh36TLZE,1062
253
+ buz-2.15.3.dist-info/METADATA,sha256=2ExuuBEvU3BAKlR7o04dBPhqCMvC_rSjZMyZv11qwX0,1659
254
+ buz-2.15.3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
255
+ buz-2.15.3.dist-info/RECORD,,
File without changes
File without changes