Skip to content

Commit 9d3efb3

Browse files
authored
Merge pull request #4 from maxipavlovic/bugfix/LITE-15603
LITE-15603 Any exception in CQRS processing is handled in RabbitMQ consumer
2 parents 957e2af + 50d767b commit 9d3efb3

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

dj_cqrs/controller/consumer.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,15 @@ def route_signal_to_replica_model(signal_type, cqrs_id, instance_data, previous_
3333

3434
if model_cls:
3535
if signal_type == SignalType.DELETE:
36-
with transaction.atomic():
36+
with transaction.atomic(savepoint=False):
3737
return model_cls.cqrs_delete(instance_data)
3838

3939
elif signal_type == SignalType.SAVE:
40-
with transaction.atomic():
40+
with transaction.atomic(savepoint=False):
4141
return model_cls.cqrs_save(instance_data, previous_data=previous_data)
4242

4343
elif signal_type == SignalType.SYNC:
44-
with transaction.atomic():
44+
with transaction.atomic(savepoint=False):
4545
return model_cls.cqrs_save(
4646
instance_data,
4747
previous_data=previous_data,

dj_cqrs/transport/rabbit_mq.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,12 @@ def _consume_message(cls, ch, method, properties, body):
8888
)
8989

9090
cls.log_consumed(payload)
91-
instance = consumer.consume(payload)
91+
92+
instance = None
93+
try:
94+
instance = consumer.consume(payload)
95+
except Exception:
96+
logger.error('CQRS service exception', exc_info=True)
9297

9398
if instance:
9499
ch.basic_ack(delivery_tag=method.delivery_tag)

0 commit comments

Comments
 (0)