在 MassTransit 5.2.1 的 ConfigurePublish 中使用发送执行
UseSendExecute in ConfigurePublish in MassTransit 5.2.1
在 MassTransit 5.2.0 中,我使用 ConfigurePublish 中的 UseSendExecute 方法将 headers 添加到特定消息类型:
var bus = BusConfigurator.ConfigureBus((h,cfg) =>
{
h.ConfigurePublish(x =>
x.UseSendExecute<TestMessage>(p =>
{
p.Headers.Set("x-deduplication-header", p.Message.Day.Ticks);
}));
});
升级到 MassTransit 5.2.1 后,方法 UseSendExecute 在 ConfigurePublish 中不再可用。
深入了解 MassTransit 的变化我发现问题的发生是因为 MassTransit.IPublishPipeConfigurator 不再实现 MassTransit.ISendPipeConfigurator 并且 UseSendExecute 是 MassTransit.DelegatePipeConfiguratorExtensions.[=11= 中 ISendPipeConfigurator 的扩展方法]
如何使用 5.2.1 版本设置相同的发布配置?
嗯,您正在配置发布行为。新语法为:
var bus = BusConfigurator.ConfigureBus((h,cfg) =>
{
h.ConfigurePublish(pc => pc.AddPipeSpecification(
new DelegatePipeSpecification<PublishContext<TestMessage>>(p =>
{
p.Headers.Set("x-deduplication-header", p.Message.Day.Ticks);
})));
});
在 MassTransit 5.2.0 中,我使用 ConfigurePublish 中的 UseSendExecute 方法将 headers 添加到特定消息类型:
var bus = BusConfigurator.ConfigureBus((h,cfg) =>
{
h.ConfigurePublish(x =>
x.UseSendExecute<TestMessage>(p =>
{
p.Headers.Set("x-deduplication-header", p.Message.Day.Ticks);
}));
});
升级到 MassTransit 5.2.1 后,方法 UseSendExecute 在 ConfigurePublish 中不再可用。
深入了解 MassTransit 的变化我发现问题的发生是因为 MassTransit.IPublishPipeConfigurator 不再实现 MassTransit.ISendPipeConfigurator 并且 UseSendExecute 是 MassTransit.DelegatePipeConfiguratorExtensions.[=11= 中 ISendPipeConfigurator 的扩展方法]
如何使用 5.2.1 版本设置相同的发布配置?
嗯,您正在配置发布行为。新语法为:
var bus = BusConfigurator.ConfigureBus((h,cfg) =>
{
h.ConfigurePublish(pc => pc.AddPipeSpecification(
new DelegatePipeSpecification<PublishContext<TestMessage>>(p =>
{
p.Headers.Set("x-deduplication-header", p.Message.Day.Ticks);
})));
});