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>(); }
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"); }