MassTransit与SaasKit的集成:使用消息时如何生成租户?

时间:2019-04-26 18:32:06

标签: multi-tenant masstransit saaskit

我正在将MassTransit集成到使用SaasKit实现多租户的解决方案上。

我的DbContext使用在“ OnConfiguring”中定义连接字符串的方法,如下所述:

https://benfoster.io/blog/aspnet-core-multi-tenancy-data-isolation-with-entity-framework

问题在于,使用消息时,租户不存在,因此DbContext没有正确初始化。

如何在MassTransit的生命周期内注入租户?

我正在使用AspNet Core依赖项注入,在其中添加租户,如下所示:

public void Configure(...)
(...)
app.UseMultitenancy<MyTenant>();

总线配置:

var busControl = Bus.Factory.CreateUsingRabbitMq(cfg =>
{
(...)
cfg.ReceiveEndpoint(host, "customer-updated", ep =>
                {
                    ep.PrefetchCount = 1;
                    ep.UseMessageRetry(r => r.Interval(2, 100));

                    ep.ConfigureConsumer<CustomerUpdatedConsumer>(provider);
                    EndpointConvention.Map<ICustomerUpdated>(ep.InputAddress);
                });

在我的DbContext构造函数内部,仅当使用消息时,我一直将MyTenant设置为null ...

 public MyDbContext(DbContextOptions<MyDbContext> options, MyTenant tenant)
        {
            this.tenant = tenant;
        }

是否有人已经尝试将SaasKit与MassTransit集成?

谢谢

0 个答案:

没有答案