我正在尝试将MassTransit配置为使用Azure服务总线与自动机状态机一起使用,并且我看不到任何有关如何执行此操作的工作示例。我们以前使用的是RabbitMQ,我们使用以下代码对其进行了配置。我换成了使用Azure Service Bus而不是.CreateUsingRabbitMq()操作,但是似乎有些配置错误。官方文档在这方面有点不足。
我在Azure Service Bus中创建了一个名为“ SomeQueue”的队列
我有一个StateSage cs.proj,它负责使用自动机名处理传奇工作流。在其配置中,我具有以下
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可以正常工作,因为我正在通过另一个充当WebApi的项目将消息放在Azure Service Bus中的队列中,该项目接收一些数据将其发送到服务总线上。
有没有人尝试过这样做或对Automatonymous有任何经验?