Skip to content
This repository was archived by the owner on Nov 17, 2023. It is now read-only.

Commit 423921b

Browse files
authored
Merge pull request #1079 from dotnet-architecture/fix/1052-rabbitmq-deadlock
Fix RabbitMQ deadlock with AsyncEventingBasicConsumer consumer
2 parents c94c992 + 2621c36 commit 423921b

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,8 @@ private async Task ProcessEvent(string eventName, string message)
274274
var handler = scope.ResolveOptional(subscription.HandlerType) as IDynamicIntegrationEventHandler;
275275
if (handler == null) continue;
276276
dynamic eventData = JObject.Parse(message);
277+
278+
await Task.Yield();
277279
await handler.Handle(eventData);
278280
}
279281
else
@@ -283,6 +285,8 @@ private async Task ProcessEvent(string eventName, string message)
283285
var eventType = _subsManager.GetEventTypeByName(eventName);
284286
var integrationEvent = JsonConvert.DeserializeObject(message, eventType);
285287
var concreteType = typeof(IIntegrationEventHandler<>).MakeGenericType(eventType);
288+
289+
await Task.Yield();
286290
await (Task)concreteType.GetMethod("Handle").Invoke(handler, new object[] { integrationEvent });
287291
}
288292
}

0 commit comments

Comments
 (0)