Как настроить разбиение сообщений при регистрации потребителя с помощью внедрения зависимостей (автофак), например
cfg.ReceiveEndpoint(host, c =>
{
c.LoadFrom(context);
c.Durable = true;
});
Все сообщения имеют один и тот же маркерный интерфейс
IDomainEvent<Guid>
Я хочу всесообщения, которые будут разделены свойством Id этого интерфейса.
Я думаю попробовать что-то вроде этого:
c.Consumer<SomeViewConsumer>(context,ConfigurePartition<SomeViewConsumer>(partitioner));
c.Consumer<SomeOtherViewConsumer>(context,ConfigurePartition<SomeOtherViewConsumer>(partitioner));
private static Action<IConsumerConfigurator<TConsumer>> ConfigurePartition<TConsumer>(IPartitioner partitioner) where TConsumer : class
{
return n => n.Message<IDomainEvent<Guid>>(k => k.UsePartitioner(partitioner, consumeContext => consumeContext.Message.Id));
}
Будет ли это работать?