您如何在多租户应用程序中使用rebus?
你会选择:
答案 0 :(得分:2)
免责声明:我对您的问题的背景一无所知:)
但我想我更喜欢一个处理邮件的邮件队列,然后将租户ID作为所有相关邮件的自定义标头传递。
事实上,我的一些同事现在正在这样做。
当你想在标题中传递这种信息时,有些事情变得很有趣 - 即我建议你通过做这样的事情自动将租户ID转移到传出消息:
Configure.With(...)
.(...)
.Events(e => {
e.MessageSent += (bus, dest, msg) => {
if (!MessageContext.HasCurrent) return;
var items = MessageContext.GetCurrent().Items;
if (!items.ContainsKey("custom-tenant-id")) return;
bus.AttachHeader(msg, "custom-tenant-id", items["custom-tenant-id"]);
};
})
.(...)
因此允许在不必担心租户ID的情况下交换消息。