protected override void Setup(FeatureConfigurationContext context) { DocumentStoreManager.GetUninitializedDocumentStore <StorageType.Outbox>(context.Settings) .CreateIndexOnInitialization(new OutboxRecordsIndex()); var timeToKeepDeduplicationData = context.Settings.GetOrDefault <TimeSpan?>(TimeToKeepDeduplicationData) ?? DeduplicationDataTTLDefault; context.Services.AddTransient <IOutboxStorage>( sp => new OutboxPersister(context.Settings.EndpointName(), sp.GetRequiredService <IOpenTenantAwareRavenSessions>(), timeToKeepDeduplicationData)); var frequencyToRunDeduplicationDataCleanup = context.Settings.GetOrDefault <TimeSpan?>(FrequencyToRunDeduplicationDataCleanup) ?? TimeSpan.FromMinutes(1); context.RegisterStartupTask(builder => { var store = DocumentStoreManager.GetDocumentStore <StorageType.Outbox>(context.Settings, builder); return(new OutboxCleaner(new OutboxRecordsCleaner(store), frequencyToRunDeduplicationDataCleanup, timeToKeepDeduplicationData)); }); context.Settings.AddStartupDiagnosticsSection( "NServiceBus.Persistence.RavenDB.Outbox", new { FrequencyToRunDeduplicationDataCleanup = frequencyToRunDeduplicationDataCleanup, TimeToKeepDeduplicationData = timeToKeepDeduplicationData, }); }
protected override void Setup(FeatureConfigurationContext context) { //var store = DocumentStoreManager.GetDocumentStore<StorageType.Timeouts>(context.Settings); DocumentStoreManager.GetUninitializedDocumentStore <StorageType.Timeouts>(context.Settings) .CreateIndexOnInitialization(new TimeoutsIndex()); context.Container.ConfigureComponent(b => { var store = DocumentStoreManager.GetDocumentStore <StorageType.Timeouts>(context.Settings, b); return(new TimeoutPersister(store)); }, DependencyLifecycle.InstancePerCall); context.Container.ConfigureComponent(b => { var store = DocumentStoreManager.GetDocumentStore <StorageType.Timeouts>(context.Settings, b); return(new QueryTimeouts(store, context.Settings.EndpointName())); }, DependencyLifecycle.SingleInstance); // Needs to be SingleInstance because it contains cleanup state context.Container.ConfigureComponent(typeof(QueryCanceller), DependencyLifecycle.InstancePerCall); context.RegisterStartupTask(b => b.Build <QueryCanceller>()); }