MassTransit,在不同的虚拟主机上使用 UseMessageScheduler
MassTransit, using UseMessageScheduler on different virtual host
是否可以将 UseMessageScheduler 配置为使用与其总线不同的虚拟主机?
我在尝试实现此目标时遇到了 "The host was not found for the specified address"。
这是我的总线配置:
_myBus = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
var host = sbc.Host(new Uri("rabbitmq://localhost/MyVirtualHostName"), h =>
{
h.Username("guest");
h.Password("guest");
});
sbc.ReceiveEndpoint(host, "MySaga", ep =>
{
var machine = new MyStateMachine();
ep.StateMachineSaga(machine, _sagaRepository);
sbc.UseMessageScheduler(new Uri("rabbitmq://localhost/Quartz"));
});
});
我还检查了 MassTransit.QuartzService 是 运行 并消耗了 "rabbitmq://localhost/Quartz"。
当我在同一个虚拟主机上使用调度时,它工作正常。更清楚地说,我的目的是让不同的应用程序使用相同的 QuartzService 与不同的虚拟主机。
我使用:
MT 5.1.4
自动命名 5.1.3
MassTransit.Quartz5.1.4
非常感谢任何帮助:)
感谢@chris-patterson 的评论,我通过在总线中添加另一台主机解决了这个问题。这是我的配置:
_myBus = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
var quartzHost = sbc.Host(new Uri("rabbitmq://localhost"), h =>
{
h.Username("guest");
h.Password("guest");
});
var host = sbc.Host(new Uri("rabbitmq://localhost/MyVirtualHostName"), h =>
{
h.Username("guest");
h.Password("guest");
});
sbc.ReceiveEndpoint(host, "MySaga", ep =>
{
var machine = new MyStateMachine();
ep.StateMachineSaga(machine, _sagaRepository);
sbc.UseMessageScheduler(new Uri("rabbitmq://localhost/Quartz"));
});
});
是否可以将 UseMessageScheduler 配置为使用与其总线不同的虚拟主机?
我在尝试实现此目标时遇到了 "The host was not found for the specified address"。
这是我的总线配置:
_myBus = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
var host = sbc.Host(new Uri("rabbitmq://localhost/MyVirtualHostName"), h =>
{
h.Username("guest");
h.Password("guest");
});
sbc.ReceiveEndpoint(host, "MySaga", ep =>
{
var machine = new MyStateMachine();
ep.StateMachineSaga(machine, _sagaRepository);
sbc.UseMessageScheduler(new Uri("rabbitmq://localhost/Quartz"));
});
});
我还检查了 MassTransit.QuartzService 是 运行 并消耗了 "rabbitmq://localhost/Quartz"。
当我在同一个虚拟主机上使用调度时,它工作正常。更清楚地说,我的目的是让不同的应用程序使用相同的 QuartzService 与不同的虚拟主机。
我使用:
MT 5.1.4
自动命名 5.1.3
MassTransit.Quartz5.1.4
非常感谢任何帮助:)
感谢@chris-patterson 的评论,我通过在总线中添加另一台主机解决了这个问题。这是我的配置:
_myBus = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
var quartzHost = sbc.Host(new Uri("rabbitmq://localhost"), h =>
{
h.Username("guest");
h.Password("guest");
});
var host = sbc.Host(new Uri("rabbitmq://localhost/MyVirtualHostName"), h =>
{
h.Username("guest");
h.Password("guest");
});
sbc.ReceiveEndpoint(host, "MySaga", ep =>
{
var machine = new MyStateMachine();
ep.StateMachineSaga(machine, _sagaRepository);
sbc.UseMessageScheduler(new Uri("rabbitmq://localhost/Quartz"));
});
});