public void PurgeErrorMessages <TTransportInit>(QueueConnection queueConnection, bool addInterceptors, ILogger logProvider, bool actuallyPurge, ICreationScope scope) where TTransportInit : ITransportInit, new() { using (var metrics = new Metrics.Metrics(queueConnection.Queue)) { var addInterceptorConsumer = InterceptorAdding.No; if (addInterceptors) { addInterceptorConsumer = InterceptorAdding.ConfigurationOnly; } using ( var creator = SharedSetup.CreateCreator <TTransportInit>(addInterceptorConsumer, logProvider, metrics, false, false, scope) ) { using ( var queue = creator.CreateMethodConsumer(queueConnection, x => x.RegisterNonScopedSingleton(scope))) { SharedSetup.SetupDefaultConsumerQueueErrorPurge(queue.Configuration, actuallyPurge); SharedSetup.SetupDefaultErrorRetry(queue.Configuration); queue.Start(); Thread.Sleep(15000); } } } }
public void PurgeErrorMessages <TTransportInit>(QueueConnection queueConnection, bool addInterceptors, ILogger logProvider, bool actuallyPurge, ICreationScope scope) where TTransportInit : ITransportInit, new() { using (var trace = SharedSetup.CreateTrace("consumer-error")) { using (var metrics = new Metrics.Metrics(queueConnection.Queue)) { var addInterceptorConsumer = InterceptorAdding.No; if (addInterceptors) { addInterceptorConsumer = InterceptorAdding.ConfigurationOnly; } var processedCount = new IncrementWrapper(); using ( var creator = SharedSetup.CreateCreator <TTransportInit>(addInterceptorConsumer, logProvider, metrics, false, false, scope, trace.Source) ) { using (var schedulerCreator = new SchedulerContainer( // ReSharper disable once AccessToDisposedClosure serviceRegister => serviceRegister.Register(() => metrics, LifeStyles.Singleton).RegisterNonScopedSingleton(trace.Source), options => SharedSetup.SetOptions(options, false))) { using (var taskScheduler = schedulerCreator.CreateTaskScheduler()) { taskScheduler.Start(); var taskFactory = schedulerCreator.CreateTaskFactory(taskScheduler); using ( var queue = creator .CreateConsumerQueueScheduler( queueConnection, taskFactory)) { SharedSetup.SetupDefaultConsumerQueueErrorPurge(queue.Configuration, actuallyPurge); SharedSetup.SetupDefaultErrorRetry(queue.Configuration); var waitForFinish = new ManualResetEventSlim(false); waitForFinish.Reset(); //start looking for work queue.Start <TMessage>((message, notifications) => throw new Exception("There should have been no data to process")); //wait for 30 seconds waitForFinish.Wait(15000); } } } } } } }
public void PurgeErrorMessages <TTransportInit>(QueueConnection queueConnection, bool addInterceptors, ILogger logProvider, bool actuallyPurge, ICreationScope scope) where TTransportInit : ITransportInit, new() { using (var trace = SharedSetup.CreateTrace("consumer-error")) { using (var metrics = new Metrics.Metrics(queueConnection.Queue)) { var addInterceptorConsumer = InterceptorAdding.No; if (addInterceptors) { addInterceptorConsumer = InterceptorAdding.ConfigurationOnly; } using ( var creator = SharedSetup.CreateCreator <TTransportInit>(addInterceptorConsumer, logProvider, metrics, false, false, scope, trace.Source) ) { using (var schedulerCreator = new SchedulerContainer( // ReSharper disable once AccessToDisposedClosure serviceRegister => serviceRegister.Register(() => metrics, LifeStyles.Singleton).RegisterNonScopedSingleton(trace.Source))) { using (var taskScheduler = schedulerCreator.CreateTaskScheduler()) { taskScheduler.Start(); var taskFactory = schedulerCreator.CreateTaskFactory(taskScheduler); using ( var queue = creator .CreateConsumerMethodQueueScheduler( queueConnection, taskFactory)) { SharedSetup.SetupDefaultConsumerQueueErrorPurge(queue.Configuration, actuallyPurge); SharedSetup.SetupDefaultErrorRetry(queue.Configuration); queue.Start(); Thread.Sleep(15000); } } } } } } }
public void PurgeErrorMessages <TTransportInit>(QueueConnection queueConnection, bool addInterceptors, ILogger logProvider, bool actuallyPurge, ICreationScope scope) where TTransportInit : ITransportInit, new() { using (var trace = SharedSetup.CreateTrace("consumer-error")) { using (var metrics = new Metrics.Metrics(queueConnection.Queue)) { var addInterceptorConsumer = InterceptorAdding.No; if (addInterceptors) { addInterceptorConsumer = InterceptorAdding.ConfigurationOnly; } using ( var creator = SharedSetup.CreateCreator <TTransportInit>(addInterceptorConsumer, logProvider, metrics, false, false, scope, trace.Source) ) { using ( var queue = creator.CreateConsumer(queueConnection)) { SharedSetup.SetupDefaultConsumerQueueErrorPurge(queue.Configuration, actuallyPurge); SharedSetup.SetupDefaultErrorRetry(queue.Configuration); var waitForFinish = new ManualResetEventSlim(false); waitForFinish.Reset(); //start looking for work queue.Start <TMessage>((message, notifications) => throw new Exception("There should have been no data to process")); //wait for 30 seconds waitForFinish.Wait(15000); } } } } }