talentro-commons 0.20.6__py3-none-any.whl → 0.20.7__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.
talentro/services/rabbitmq.py
CHANGED
|
@@ -124,15 +124,17 @@ class RabbitMQ:
|
|
|
124
124
|
await queue_object.bind(exchange, routing_key=queue)
|
|
125
125
|
|
|
126
126
|
async for message in queue_object:
|
|
127
|
+
message_processed = False
|
|
127
128
|
try:
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
event:
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
129
|
+
event: Event = Event.decode(message.body)
|
|
130
|
+
print(
|
|
131
|
+
f" RabbitMQ ({queue}) - [x] Received event: {event.meta.event_type} (trace: {event.meta.trace_id})")
|
|
132
|
+
await callback(queue, event)
|
|
133
|
+
|
|
134
|
+
# If we reach here, callback succeeded - manually ack
|
|
135
|
+
await message.ack()
|
|
136
|
+
message_processed = True
|
|
137
|
+
|
|
136
138
|
except Exception as e:
|
|
137
139
|
# Handle callback exception - send to retry queue
|
|
138
140
|
print(f" RabbitMQ ({queue}) - ⚠️ Error processing message: {e}")
|
|
@@ -146,10 +148,12 @@ class RabbitMQ:
|
|
|
146
148
|
|
|
147
149
|
if death_count >= max_retries:
|
|
148
150
|
print(f" RabbitMQ ({queue}) - ❌ Max retries ({max_retries}) exceeded. Sending to DLQ.")
|
|
149
|
-
await message.nack(requeue=False)
|
|
150
151
|
else:
|
|
151
152
|
print(f" RabbitMQ ({queue}) - Sending to retry queue...")
|
|
152
|
-
|
|
153
|
+
|
|
154
|
+
# Nack outside of any context manager
|
|
155
|
+
await message.nack(requeue=False)
|
|
156
|
+
message_processed = True
|
|
153
157
|
|
|
154
158
|
except (aio_pika.exceptions.AMQPConnectionError, aio_pika.exceptions.ChannelClosed):
|
|
155
159
|
print(f" RabbitMQ - Connection lost while consuming {queue}. Retrying in 5 seconds...")
|
|
@@ -29,7 +29,7 @@ talentro/services/caching.py,sha256=mmjhXAMJ_g8D8cJqn15YqZ7ST-G5lD9MS-PmlowI7pU,
|
|
|
29
29
|
talentro/services/clients.py,sha256=vluOrdYdDAQLyGR9-EmogLjA9OUlJtHy0tYD9LhwxKg,2174
|
|
30
30
|
talentro/services/db.py,sha256=cnKCrYG7GwIu7ZZhA25D-yaXaiCJqPpzfcanWquyrBY,822
|
|
31
31
|
talentro/services/google_storage.py,sha256=5r5uiDZD-76Dylc7yyRG5Ni4XNTc9xK8rC0glCRG8_8,6014
|
|
32
|
-
talentro/services/rabbitmq.py,sha256=
|
|
32
|
+
talentro/services/rabbitmq.py,sha256=79WgdUzq2PIx9UUHKxAoi08YaBa7t-NS42eboNVXRVQ,10357
|
|
33
33
|
talentro/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
34
|
talentro/util/attributes.py,sha256=PgJnn9LMtHkiNIaMov2HQt5944HweD6gRlAHBZrJGPA,448
|
|
35
35
|
talentro/util/enum.py,sha256=YftsoJKnrn8HAjA2Q1tqIYBMrNnlq6m1b34N8hfykbE,155
|
|
@@ -41,6 +41,6 @@ talentro/vacancies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
|
|
|
41
41
|
talentro/vacancies/dataclasses.py,sha256=E6H5fsZH4IwtBFSLDolzF6u39tEIrANtWiNVoB65P0c,15074
|
|
42
42
|
talentro/vacancies/models.py,sha256=GoXr71CNzU6csf8gdmv84etb3Rm-Cdfigp1yqPI_jjQ,4822
|
|
43
43
|
talentro/vacancies/taxanomy.py,sha256=B6DMq9Wbs0aXFwD9aZveSlLwAC9eq1iCO_KM-FmrV7M,6384
|
|
44
|
-
talentro_commons-0.20.
|
|
45
|
-
talentro_commons-0.20.
|
|
46
|
-
talentro_commons-0.20.
|
|
44
|
+
talentro_commons-0.20.7.dist-info/METADATA,sha256=ocrU8-lGoyvuWhx3CEf1DTXnKN-uqgwi1myOifIyLNw,1507
|
|
45
|
+
talentro_commons-0.20.7.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
46
|
+
talentro_commons-0.20.7.dist-info/RECORD,,
|
|
File without changes
|