我正在尝试将 MassTransit 配置为使用 Azure 服务总线与自动状态机一起使用,但我看不到任何有关如何执行此操作的工作示例。我们之前使用的是使用以下代码配置的 RabbitMQ。我已改用 Azure 服务总线而不是 .CreateUsingRabbitMq() 操作,但似乎存在一些错误配置。官方文档在这方面有点轻。
- 操作系统:Windows 10 Pro
- Visual Studio 版本:2017
- 点网版本:2.2
我在 Azure 服务总线中创建了一个名为“SomeQueue”的队列
我有一个 StateSage cs.proj 负责使用 Automatonymous 处理 saga 工作流。在其配置中,我有以下内容
var bus = Bus.Factory.CreateUsingAzureServiceBus(cfg =>
{
var host = cfg.Host(
new Uri(AzureServiceBusConfigurationSettings.Uri),
h =>
{
h.SharedAccessSignature(s =>
{
s.KeyName = AzureServiceBusConfigurationSettings.KeyName;
s.SharedAccessKey = AzureServiceBusConfigurationSettings.ShareAccessKey;
s.TokenTimeToLive = TimeSpan.FromDays(1);
s.TokenScope = TokenScope.Namespace;
});
});
cfg.UseSerilog();
cfg.ReceiveEndpoint(
host,
"order_saga",
e =>
{
e.UseInMemoryOutbox();
e.StateMachineSaga(someStateMachine, repository);
});
});
bus.Start();
现在我知道常量 AzureServiceBusConfigurationSettings.Uri 工作正常,因为我通过另一个项目将消息放在 Azure 服务总线中的队列上,该项目充当接收一些数据的 WebApi 将其发送到服务总线。
有没有人尝试过这样做或对 Automatonymous 有任何经验?