コード例 #1
0
ファイル: Container_Specs.cs プロジェクト: yj7o5/MassTransit
            protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
            {
                configurator.AddSagaStateMachine <TestStateMachineSaga, TestInstance>()
                .MessageSessionRepository();

                configurator.AddBus(provider => BusControl);
            }
コード例 #2
0
        protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
        {
            configurator.AddConsumer <DependentBatchConsumer>(x =>
                                                              x.Options <BatchOptions>(b => b.SetTimeLimit(200).SetMessageLimit(4)));

            configurator.AddBus(provider => BusControl);
        }
コード例 #3
0
        protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
        {
            configurator.AddSaga <SimpleSaga>()
            .InMemoryRepository();

            configurator.AddBus(provider => BusControl);
        }
コード例 #4
0
        protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
        {
            configurator.AddConsumer <InitialConsumer>();
            configurator.AddConsumer <SubsequentConsumer>();

            configurator.AddBus(context => BusControl);
        }
コード例 #5
0
        /// <summary>
        /// Register bus.
        /// </summary>
        /// <exception cref="ArgumentNullException"/>
        public static void RegisterBus(this IBusRegistrationConfigurator collectionConfigurator,
                                       Action <IBusRegistrationContext, IAmazonSqsBusFactoryConfigurator> registerConsumers, AmazonMqOptions?amazonMqOptions = null)
        {
            if (collectionConfigurator == null)
            {
                throw new ArgumentNullException(nameof(collectionConfigurator));
            }
            if (registerConsumers == null)
            {
                throw new ArgumentNullException(nameof(registerConsumers));
            }

            collectionConfigurator.UsingAmazonSqs((busRegistrationContext, mqBusFactoryConfigurator) =>
            {
                amazonMqOptions ??= busRegistrationContext.GetRequiredService <IOptions <AmazonMqOptions> >().Value;
                mqBusFactoryConfigurator.Host(amazonMqOptions.Region, configurator =>
                {
                    configurator.AccessKey(amazonMqOptions.AccessKey);
                    configurator.SecretKey(amazonMqOptions.SecretKey);
                });

                mqBusFactoryConfigurator.AutoDelete = false;
                mqBusFactoryConfigurator.Durable    = true;

                // enable activity tracer for all consumers
                if (EnableConsumerTracer)
                {
                    mqBusFactoryConfigurator.LinkActivityTracingContext();
                }

                // register consumers here
                registerConsumers(busRegistrationContext, mqBusFactoryConfigurator);
            });
        }
コード例 #6
0
            protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
            {
                configurator.AddSagaStateMachine <TestStateMachineSaga, TestInstance>()
                .RedisRepository(r => r.ConcurrencyMode = ConcurrencyMode.Pessimistic);

                configurator.AddBus(provider => BusControl);
            }
コード例 #7
0
        protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
        {
            configurator.AddConsumer <ActivityRequestConsumer>();
            configurator.AddExecuteActivity <SendRequestActivity, SendRequestArguments>();

            configurator.AddBus(context => BusControl);

            configurator.AddRequestClient <ActivityRequest>(RequestQueueAddress);
        }
コード例 #8
0
ファイル: Container_Specs.cs プロジェクト: yj7o5/MassTransit
            protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
            {
                _connectionString = LocalDbConnectionStringProvider.GetLocalDbConnectionString();

                configurator.AddSagaStateMachine <TestStateMachineSaga, TestInstance>()
                .DapperRepository(_connectionString);

                configurator.AddBus(provider => BusControl);
            }
コード例 #9
0
        protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
        {
            configurator.AddConsumer <InitialConsumer>();
            configurator.AddConsumer <SubsequentConsumer>();

            configurator.AddBus(context => BusControl);

            configurator.AddRequestClient <InitialRequest>(InputQueueAddress);
            configurator.AddRequestClient(typeof(SubsequentRequest), SubsequentQueueAddress);
        }
コード例 #10
0
        protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
        {
            configurator.SetKebabCaseEndpointNameFormatter();

            configurator.AddConsumersFromNamespaceContaining <CrunchTheNumbersConsumer>();

            configurator.AddRequestClient <CrunchTheNumbers>();

            configurator.AddBus(provider => BusControl);
        }
コード例 #11
0
 protected static void ConfigureTwo(IBusRegistrationConfigurator configurator)
 {
     configurator.AddConsumer <Consumer2>();
     configurator.UsingInMemory((context, cfg) =>
     {
         cfg.Host(new Uri("loopback://bus-two/"));
         cfg.ConfigureEndpoints(context);
         cfg.UseHealthCheck(context);
     });
 }
コード例 #12
0
            protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
            {
                configurator.AddSagaStateMachine <TestStateMachineSaga, TestInstance>()
                .AzureTableRepository(cfg =>
                {
                    cfg.ConnectionFactory(() => TestCloudTable);
                });

                configurator.AddBus(provider => BusControl);
            }
コード例 #13
0
 protected static void ConfigureOne(IBusRegistrationConfigurator configurator)
 {
     configurator.AddConsumer <Consumer1>();
     configurator.AddConsumer <OneRequestConsumer>();
     configurator.UsingInMemory((context, cfg) =>
     {
         cfg.Host(new Uri("loopback://bus-one/"));
         cfg.ConfigureEndpoints(context);
     });
     configurator.AddRequestClient <OneRequest>();
 }
コード例 #14
0
            protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
            {
                configurator.AddSagaStateMachine <TestStateMachineSaga, TestInstance>()
                .MongoDbRepository(r =>
                {
                    r.Connection   = "mongodb://127.0.0.1";
                    r.DatabaseName = "sagaTest";
                });

                configurator.AddBus(provider => BusControl);
            }
コード例 #15
0
        protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
        {
            configurator.SetKebabCaseEndpointNameFormatter();

            configurator.AddConsumersFromNamespaceContaining <SubmitOrderConsumer>();

            configurator.AddRequestClient <SubmitOrder>();
            configurator.AddRequestClient <AuthorizeOrder>();

            configurator.AddBus(provider => BusControl);
        }
コード例 #16
0
            protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
            {
                configurator.AddSagaStateMachine <TestStateMachineSaga, TestInstance>()
                .EntityFrameworkRepository(r =>
                {
                    r.ConcurrencyMode = ConcurrencyMode.Pessimistic;

                    r.DatabaseFactory(provider => () => new TestInstanceDbContext(LocalDbConnectionStringProvider.GetLocalDbConnectionString()));
                });

                configurator.AddBus(provider => BusControl);
            }
コード例 #17
0
        /// <summary>
        /// Configure MassTransit to use Azure Service Bus for the transport.
        /// </summary>
        /// <param name="configurator">The registration configurator (configured via AddMassTransit)</param>
        /// <param name="configure">The configuration callback for the bus factory</param>
        public static void UsingAzureServiceBus(this IBusRegistrationConfigurator configurator,
                                                Action <IBusRegistrationContext, IServiceBusBusFactoryConfigurator> configure = null)
        {
            configurator.SetBusFactory(new ServiceBusRegistrationBusFactory(configure));

            configurator.Registrar.RegisterSingleInstance(provider =>
            {
                var subscriptionEndpointConnector = provider.GetRequiredService <IBusInstance>() as ISubscriptionEndpointConnector;

                return(subscriptionEndpointConnector ?? throw new ConfigurationException("The default bus instance is not an Azure Service Bus Instance"));
            });
        }
コード例 #18
0
            protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
            {
                configurator.AddSagaStateMachine <TestStateMachineSaga, TestInstance>()
                .CosmosRepository(r =>
                {
                    r.DatabaseId   = "sagaTest";
                    r.CollectionId = "TestInstance";
                    r.UseClientFactory(_clientName);
                });

                configurator.AddBus(provider => BusControl);
            }
コード例 #19
0
        protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
        {
            configurator.AddConsumer <ConsumerA>(typeof(ConsumerADefinition))
            .Endpoint(x => x.Name = "shared");

            configurator.AddConsumer <ConsumerB>(typeof(ConsumerBDefinition))
            .Endpoint(x => x.Name = "shared");

            configurator.AddConsumer <ConsumerC>(typeof(ConsumerCDefinition));

            configurator.AddBus(provider => BusControl);
        }
コード例 #20
0
        protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
        {
            configurator.AddSaga <SimpleSaga>()
            .Endpoint(e => e.Name = "custom-endpoint-name")
            .InMemoryRepository();

            configurator.AddSaga <SecondSimpleSaga>(typeof(SecondSimpleSagaDefinition))
            .Endpoint(e => e.Temporary = true)
            .InMemoryRepository();

            configurator.AddBus(provider => BusControl);
        }
コード例 #21
0
            protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
            {
                configurator.AddSagaStateMachine <TestStateMachineSaga, TestInstance>()
                .EntityFrameworkRepository(r =>
                {
                    r.ConcurrencyMode = ConcurrencyMode.Optimistic;

                    r.AddDbContext <DbContext, TestInstanceDbContext>(ApplyBuilderOptions);
                });

                configurator.AddBus(provider => BusControl);
            }
コード例 #22
0
            protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
            {
                configurator.AddSagaStateMachine <TestStateMachineSaga, TestInstance>()
                .CosmosRepository(r =>
                {
                    r.EndpointUri = Configuration.EndpointUri;
                    r.Key         = Configuration.Key;

                    r.DatabaseId   = "sagaTest";
                    r.CollectionId = "TestInstance";
                });

                configurator.AddBus(provider => BusControl);
            }
コード例 #23
0
            protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
            {
                configurator.AddSagaStateMachine <TestStateMachineSaga, TestInstance>()
                .MartenRepository("server=localhost;port=5432;database=MartenTest;user id=postgres;password=Password12!;", r =>
                {
                    r.CreateDatabasesForTenants(c =>
                    {
                        c.ForTenant()
                        .CheckAgainstPgDatabase()
                        .WithOwner("postgres")
                        .WithEncoding("UTF-8")
                        .ConnectionLimit(-1);
                    });
                });

                configurator.AddBus(provider => BusControl);
            }
コード例 #24
0
        protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
        {
            configurator.AddConsumer <PlainConsumer>();

            configurator.AddConsumer <ByDefinitionConsumer, ByDefinitionConsumerDefinition>();

            configurator.AddConsumer <ByEndpointConsumer>()
            .Endpoint(x => x.Name = "by-endpoint");

            configurator.AddConsumer <ByEndpointDefinitionConsumer, ByEndpointDefinitionConsumerDefinition>()
            .Endpoint(x => x.Name = "by_endpoint_definition");

            configurator.AddConsumer <ByEndpointNameConsumer, ByEndpointNameConsumerDefinition>()
            .Endpoint(x => x.Name = "by_endpoint_name");

            configurator.AddConsumer <ByEndpointOverrideConsumer, ByEndpointOverrideConsumerDefinition>()
            .Endpoint(x => x.Name = "by_endpoint_override");

            configurator.AddBus(provider => BusControl);
        }
コード例 #25
0
            protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
            {
                configurator.AddSagaStateMachine <TestStateMachineSaga, TestInstance>()
                .EntityFrameworkRepository(r =>
                {
                    r.AddDbContext <DbContext, TestInstanceDbContext>(ApplyBuilderOptions);

                    r.ConcurrencyMode = ConcurrencyMode.Pessimistic;
                    if (DbContextOptionsBuilder.Options.Extensions.Any(x => x is NpgsqlOptionsExtension))
                    {
                        r.LockStatementProvider = new PostgresLockStatementProvider(false);
                    }
                    else
                    {
                        r.LockStatementProvider = new SqlServerLockStatementProvider(false);
                    }
                });

                configurator.AddBus(provider => BusControl);
            }
コード例 #26
0
        /// <summary>
        /// Register bus.
        /// </summary>
        /// <exception cref="ArgumentNullException"/>
        public static void RegisterBus <TMqOptions>(this IBusRegistrationConfigurator collectionConfigurator,
                                                    Action <IBusRegistrationContext, IRabbitMqBusFactoryConfigurator> registerConsumers, TMqOptions?rabbitMqOptions = null,
                                                    Func <IBusRegistrationContext, RefreshConnectionFactoryCallback>?refreshConnectCallback = null) where TMqOptions : RabbitMqOptions, new()
        {
            if (collectionConfigurator == null)
            {
                throw new ArgumentNullException(nameof(collectionConfigurator));
            }
            if (registerConsumers == null)
            {
                throw new ArgumentNullException(nameof(registerConsumers));
            }

            collectionConfigurator.UsingRabbitMq((registrationContext, mqBusFactoryConfigurator) =>
            {
                rabbitMqOptions ??= registrationContext.GetRequiredService <IOptions <TMqOptions> >().Value;
                mqBusFactoryConfigurator.Host(rabbitMqOptions.Host, rabbitMqOptions.Port, rabbitMqOptions.VHost,
                                              $"{Environment.MachineName}:{AppDomain.CurrentDomain.FriendlyName}", configurator =>
                {
                    configurator.OnRefreshConnectionFactory = refreshConnectCallback?.Invoke(registrationContext);
                    configurator.Username(rabbitMqOptions.Username);
                    configurator.Password(rabbitMqOptions.Password);
                    if (rabbitMqOptions.IsSecure && rabbitMqOptions.CertificatePath != null)
                    {
                        configurator.UseSsl(ssl => ssl.CertificatePath = rabbitMqOptions.CertificatePath);
                    }
                });

                mqBusFactoryConfigurator.AutoDelete = false;
                mqBusFactoryConfigurator.Durable    = true;

                // enable activity tracer for all consumers
                if (EnableConsumerTracer)
                {
                    mqBusFactoryConfigurator.LinkActivityTracingContext();
                }

                // register consumers here
                registerConsumers(registrationContext, mqBusFactoryConfigurator);
            });
        }
コード例 #27
0
 /// <summary>
 /// Should be used on every AddMassTransit configuration
 /// </summary>
 /// <param name="configurator"></param>
 public static void ApplyCustomMassTransitConfiguration(this IBusRegistrationConfigurator configurator)
 {
     configurator.SetEndpointNameFormatter(new CustomEndpointNameFormatter());
 }
コード例 #28
0
 protected void ConfigureRegistration(IBusRegistrationConfigurator configurator)
 {
     configurator.AddConsumer <SimplerConsumer>();
     configurator.AddBus(provider => BusControl);
 }
コード例 #29
0
 /// <summary>
 /// Configure MassTransit to use the gRPC transport
 /// </summary>
 /// <param name="configurator">The registration configurator (configured via AddMassTransit)</param>
 /// <param name="baseAddress">The base Address of the transport</param>
 /// <param name="configure">The configuration callback for the bus factory</param>
 public static void UsingGrpc(this IBusRegistrationConfigurator configurator, Uri baseAddress,
                              Action <IBusRegistrationContext, IGrpcBusFactoryConfigurator> configure = null)
 {
     configurator.SetBusFactory(new GrpcRegistrationBusFactory(baseAddress, configure));
 }
コード例 #30
0
 /// <summary>
 /// Configure MassTransit to use Azure Service Bus for the transport.
 /// </summary>
 /// <param name="configurator">The registration configurator (configured via AddMassTransit)</param>
 /// <param name="configure">The configuration callback for the bus factory</param>
 public static void UsingAzureServiceBus(this IBusRegistrationConfigurator configurator,
                                         Action <IBusRegistrationContext, IServiceBusBusFactoryConfigurator> configure = null)
 {
     configurator.SetBusFactory(new ServiceBusRegistrationBusFactory(configure));
 }