public FailoverSteps(Settings settings) { transportSettings = settings.AzureServiceBusTransport.Clone(); transportSettings.ConnectionStrings = new[] { "Endpoint=sb://badconnstring.somesuch.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=6SpfTD7REZVLBcgBjQ4epN8AOZAMbZTkE20Rq+/ACg8=", transportSettings.ConnectionStrings.Single() }; }
public void Setup() { settings = new AzureServiceBusTransportSettings { ConnectionStrings = new[] { "connection 1", "connection 2" }, ReadTimeout = TimeSpan.FromSeconds(1), LongWaitReadTimeout = TimeSpan.FromSeconds(3), BackoffDelayForFaultyConnection = TimeSpan.FromSeconds(5), BackoffDelayIfAllConnectionsFaulty = TimeSpan.FromSeconds(7) }; source = new AzureServiceBusMessageSource( settings, mockSubscriptionInitialiser.Object, new[] { busInstance1.Object, busInstance2.Object }, new FullNameTypeMap(), NullLogger <AzureServiceBusMessageSource> .Instance, EndpointName); azureMessage = new Message { MessageId = Guid.NewGuid().ToString(), Body = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject("message body")), UserProperties = { { "TestHeader", "TestValue" }, { "MessageTypeNames", ";System.String;" } } }; azureMessage.SystemProperties.SetPrivateProperty("SequenceNumber", 1L); azureMessage.SystemProperties.SetPrivateProperty("LockTokenGuid", Guid.NewGuid()); azureMessage.SystemProperties.SetPrivateProperty("DeliveryCount", 22); busInstance1.SetupTryReceiveMessagesReturns(azureMessage); busInstance2.SetupTryReceiveMessagesReturns(azureMessage); incomingMessage = new IncomingMessage( Guid.NewGuid().ToString(), "message body", new[] { "System.String" }, DateTime.UtcNow, DateTime.UtcNow + TimeSpan.FromSeconds(10), 1, providerData: new ProviderData(busInstance1.Object, "lock token", 1234, null)); }
public void Setup() { settings = new AzureServiceBusTransportSettings { ConnectionStrings = new[] { "connection 1", "connection 2" }, ReadTimeout = TimeSpan.FromSeconds(1), LongWaitReadTimeout = TimeSpan.FromSeconds(3), BackoffDelayForFaultyConnection = TimeSpan.FromSeconds(5), BackoffDelayIfAllConnectionsFaulty = TimeSpan.FromSeconds(7) }; instance = new AzureServiceBusInstance( mockMessageReceiver.Object, mockTopicClient.Object, settings, NullLogger <AzureServiceBusInstance> .Instance, 1); }
private static IServiceCollection AddSimpleEventBus(this IServiceCollection services, AzureServiceBusTransportSettings azureServiceBusTransportSettings) => services.AddSimpleEventBus( options => options .UseEndpointName("SimpleEventBus.MinimalExample.Subscriber") .UseAzureServiceBus(azureServiceBusTransportSettings) .UseSingletonHandlersIn(typeof(Program).Assembly));
public static Options UseAzureServiceBus(this Options options, AzureServiceBusTransportSettings settings) { if (!settings.ConnectionStrings.Any()) { throw new InvalidOperationException( $"No connection strings were set up in the {nameof(AzureServiceBusTransportSettings)} instance given to {nameof(UseAzureServiceBus)}."); } var connectionStringNumber = 0; foreach (var connectionString in settings.ConnectionStrings) { connectionStringNumber++; options.Services .AddSingleton <IAzureServiceBusInstance>( sp => new AzureServiceBusInstance( new MessageReceiver( connectionString, EntityNameHelper.FormatSubscriptionPath( settings.SafeEffectiveTopicName, SubscriptionDescriptionExtensions.SafeSubscriptionName(options.EndpointName))), new TopicClient( connectionString, settings.SafeEffectiveTopicName) { OperationTimeout = settings.SendTimeout }, settings, sp.GetLoggerOrDefault <AzureServiceBusInstance>(), connectionStringNumber)); } options .Services .AddSingleton(settings) .AddSingleton <ISubscriptionInitialiser>( sp => new SubscriptionInitialiser( settings, sp.GetLoggerOrDefault <AzureServiceBusMessageSource>())) .AddSingleton( sp => new AzureServiceBusMessageSink( sp.GetFailoverStrategyOrDefault( settings.ConnectionStrings))) .AddSingleton( sp => new AzureServiceBusMessageSource( settings, sp.GetRequiredService <ISubscriptionInitialiser>(), sp.GetServices <IAzureServiceBusInstance>(), sp.GetRequiredService <ITypeMap>(), sp.GetLoggerOrDefault <AzureServiceBusMessageSource>(), sp.GetRequiredService <Options>().EndpointName)) .AddSingleton <IMessageSink>( sp => sp.GetRequiredService <AzureServiceBusMessageSink>()) .AddScoped <IMessageSource>( sp => sp.GetRequiredService <AzureServiceBusMessageSource>()) .AddSingleton <NoFailoverStrategy>() .AddSingleton <ActiveActiveFailoverStrategy>() .AddSingleton <ActivePassiveFailoverStrategy>(); return(options); }
private static IServiceCollection AddSimpleEventBus(this IServiceCollection services, AzureServiceBusTransportSettings azureServiceBusTransportSettings) => services.AddSimpleEventBus( options => options .UseEndpointName("SimpleEventBus.MinimalExample.Publisher") .UseAzureServiceBus(azureServiceBusTransportSettings));