【发布时间】:2021-12-01 22:02:17
【问题描述】:
我们需要将多个事件作为 json 字符串从 DB 发布。像这样通过公共交通发布这个 json 事件:
using var scope = _serviceScopeFactory.CreateScope();
var sendEndpointProvider = scope.ServiceProvider.GetService<ISendEndpointProvider>();
var endpoint = await sendEndpointProvider.GetSendEndpoint(new System.Uri("exchange:IntegrationEvents.DynamicEvent:DynamicEvent"))
var json = JsonConvert.SerializeObject(dynamicObject, Newtonsoft.Json.Formatting.None);// sample
var obj = JsonConvert.DeserializeObject(json, new JsonSerializerSettings { });
await endpoint.Send(obj,i=>i.Serializer.ContentType.MediaType= "application/json");
在配置中我们使用这个配置:
cfg.UseRawJsonSerializer();
使用此配置时,json 事件已成功发布,但我们有一个奇怪的问题:“all”事件消费者被空消息数据调用! ...在Rabbitmq jsut 中发布了我们的“动态事件”,但在masstrasit 中,所有消费者都调用了! 感谢您让我们知道我们是否犯了错误
【问题讨论】:
标签: asp.net-core rabbitmq masstransit messagebroker message-bus