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.
- buz/event/infrastructure/buz_kafka/kafka_event_async_subscriber_executor.py +8 -8
- buz/event/infrastructure/buz_kafka/kafka_event_sync_subscriber_executor.py +8 -1
- buz/event/strategies/retry/consume_retrier.py +4 -0
- buz/event/strategies/retry/consumed_event_retry_repository.py +4 -0
- buz/event/strategies/retry/max_retries_consume_retrier.py +3 -0
- {buz-2.15.1.dist-info → buz-2.15.3.dist-info}/METADATA +1 -1
- {buz-2.15.1.dist-info → buz-2.15.3.dist-info}/RECORD +9 -9
- {buz-2.15.1.dist-info → buz-2.15.3.dist-info}/LICENSE +0 -0
- {buz-2.15.1.dist-info → buz-2.15.3.dist-info}/WHEEL +0 -0
|
@@ -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])
|
|
@@ -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)
|
|
@@ -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=
|
|
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=
|
|
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=
|
|
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=
|
|
109
|
-
buz/event/strategies/retry/max_retries_consume_retrier.py,sha256=
|
|
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.
|
|
253
|
-
buz-2.15.
|
|
254
|
-
buz-2.15.
|
|
255
|
-
buz-2.15.
|
|
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
|