public static void Init(IWindsorContainer container)
        {
            var adapter = new CastleWindsorContainerAdapter(container);
            var bus     = Configure.With(adapter)
                          .Logging(x => x.Log4Net())
                          .Transport(x => x.UseMsmq($"{EndpointName}.input"))
                          .Routing(t => t.TypeBased().AddEndpointMappingsFromAppConfig())
                          .SetupSubscriptions("endpoint", "ProvisioningServiceSubscriptions")
                          .Options(x => x.SetNumberOfWorkers(5))
                          .Start();

            bus.Subscribe <AccountCreated>();
            bus.Subscribe <SubscriptionsChanged>();
        }
Beispiel #2
0
        public static void Init(IWindsorContainer container)
        {
            var adapter = new CastleWindsorContainerAdapter(container);
            var bus     = Configure.With(adapter)
                          .Logging(x => x.Log4Net())
                          .Transport(x => x.UseMsmq($"{EndpointName}.input"))
                          .Routing(t => t.TypeBased().AddEndpointMappingsFromAppConfig())
                          .SetupSubscriptions("endpoint", "AccountsServiceSubscriptions")
                          .SetupUnitOfWork(container)
                          .Options(x => x.SetNumberOfWorkers(5))
                          .Start();

            bus.Subscribe <ProductProvisioned>();

            DomainEvents.Configure(e => bus.Publish(e));
        }
        public override void PostInitialize()
        {
            var config = IocManager.Resolve <IAbpRebusRabbitMqProducerModuleConfig>();

            if (config.Enabled)
            {
                var container = IocManager.IocContainer;
                var adapter   = new CastleWindsorContainerAdapter(container);

                var rebusConfig = Configure.With(adapter);
                if (config.MessageAuditingEnabled)
                {
                    rebusConfig.Options(o => o.EnableMessageAuditing(config.MessageAuditingQueueName));
                }

                rebusConfig.Logging(config.RebusLoggingConfig);

                _bus = rebusConfig.Transport(t => t.UseRabbitMqAsOneWayClient(config.ConnectionString))
                       .Start();
            }
        }
        public async Task JustResolveManyTimes(int count)
        {
            var container = Using(new WindsorContainer());

            container.RegisterHandler <StringHandler>();

            var handlerActivator = new CastleWindsorContainerAdapter(container);

            var stopwatch = Stopwatch.StartNew();

            for (var counter = 0; counter < count; counter++)
            {
                using (var scope = new RebusTransactionScope())
                {
                    await handlerActivator.GetHandlers("this is my message", scope.TransactionContext);
                }
            }

            var elapsedSeconds = stopwatch.Elapsed.TotalSeconds;

            Console.WriteLine($"{count} resolutions took {elapsedSeconds:0.0} s - that's {count / elapsedSeconds:0.0} /s");
        }