コード例 #1
0
        public void CreateBus(IServiceCollectionBusConfigurator busConfigurator, IStartupBusConfigurator configurator)
        {
            if (!configurator.HasSchedulerEndpoint)
            {
                busConfigurator.AddRabbitMqMessageScheduler();
            }

            busConfigurator.UsingRabbitMq((context, cfg) =>
            {
                var options    = context.GetRequiredService <IOptions <RabbitMqOptions> >().Value;
                var sslOptions = context.GetRequiredService <IOptions <RabbitMqSslOptions> >().Value;

                cfg.Host(options.Host, options.Port, options.VHost, h =>
                {
                    h.Username(options.User);
                    h.Password(options.Pass);

                    if (options.UseSsl)
                    {
                        h.UseSsl(s =>
                        {
                            s.ServerName            = sslOptions.ServerName;
                            s.CertificatePath       = sslOptions.CertPath;
                            s.CertificatePassphrase = sslOptions.CertPassphrase;
                            s.UseCertificateAsAuthenticationIdentity = sslOptions.CertIdentity;

                            if (sslOptions.Trust)
                            {
                                s.AllowPolicyErrors(SslPolicyErrors.RemoteCertificateNameMismatch | SslPolicyErrors.RemoteCertificateChainErrors
                                                    | SslPolicyErrors.RemoteCertificateNotAvailable);
                            }
                        });
                    }
                });

                if (!configurator.TryConfigureQuartz(cfg))
                {
                    Log.Information("Configuring RabbitMQ Message Scheduler (delayed exchange)");
                    cfg.UseDelayedExchangeMessageScheduler();
                }

                configurator.ConfigureBus(cfg, context);
            });
        }
コード例 #2
0
        public static IServiceCollectionBusConfigurator AddBusConfigurator(this IServiceCollectionBusConfigurator configurator, string eventBusConnection)
        {
            configurator.ApplyCustomMassTransitConfiguration();

            configurator.SetKebabCaseEndpointNameFormatter();

            configurator.UsingRabbitMq((context, rabbitMqBusFactoryConfigurator) =>
            {
                rabbitMqBusFactoryConfigurator.Host(eventBusConnection);

                MessageDataDefaults.ExtraTimeToLive         = TimeSpan.FromDays(1);
                MessageDataDefaults.Threshold               = 2000;
                MessageDataDefaults.AlwaysWriteToRepository = false;

                rabbitMqBusFactoryConfigurator.ConfigureEndpoints(context);
            });

            return(configurator);
        }
コード例 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="x"></param>
        public static void MTConfiguration(IServiceCollectionBusConfigurator x)
        {
            x.UsingRabbitMq((ctx, cfg) =>
            {
                string mqHostAddress = GVariable.configuration["MTMQ:Host"];

                cfg.Host(mqHostAddress, virtualHost: "/", c =>
                {
                    string user = GVariable.configuration["MTMQ:UserName"];
                    string pwd  = GVariable.configuration["MTMQ:Password"];
                    c.Username(user);
                    c.Password(pwd);
                });

                cfg.UseRetry(ret =>
                {
                    ret.Interval(5, TimeSpan.FromSeconds(12));
                });
            });
        }