IEngineProcess BuildConsumingProcess(IComponentContext context) { var log = context.Resolve <ISystemObserver>(); var streamer = context.Resolve <IEnvelopeStreamer>(); var dispatcher = _dispatcher(context); dispatcher.Init(); var queues = _fileQueues .Select(n => Path.Combine(_fullPath.Folder.FullName, n)) .Select(n => new DirectoryInfo(n)) .Select(f => new StatelessFileQueueReader(streamer, log, new Lazy <DirectoryInfo>(() => { var poison = Path.Combine(f.FullName, "poison"); var di = new DirectoryInfo(poison); di.Create(); return(di); }, LazyThreadSafetyMode.ExecutionAndPublication), f, f.Name)) .ToArray(); var inbox = new FilePartitionInbox(queues, _decayPolicy); var quarantine = _quarantineFactory(context); var manager = context.Resolve <MessageDuplicationManager>(); var transport = new DispatcherProcess(log, dispatcher, inbox, quarantine, manager); return(transport); }
IEngineProcess BuildConsumingProcess(IComponentContext context) { var log = context.Resolve <ISystemObserver>(); var dispatcher = _dispatcher(context); dispatcher.Init(); var account = context.Resolve <MemoryAccount>(); var factory = new MemoryPartitionFactory(account); var notifier = factory.GetMemoryInbox(_memoryQueues); var quarantine = _quarantineFactory(context); var manager = context.Resolve <MessageDuplicationManager>(); var transport = new DispatcherProcess(log, dispatcher, notifier, quarantine, manager); return(transport); }
IEngineProcess BuildConsumingProcess(IComponentContext context) { var log = context.Resolve <ISystemObserver>(); var dispatcher = _dispatcher(context); dispatcher.Init(); var streamer = context.Resolve <IEnvelopeStreamer>(); var factory = new AzurePartitionFactory(streamer, log, _config, _queueVisibilityTimeout, _decayPolicy); var notifier = factory.GetNotifier(_queueNames.ToArray()); var quarantine = _quarantineFactory(context); var manager = context.Resolve <MessageDuplicationManager>(); var transport = new DispatcherProcess(log, dispatcher, notifier, quarantine, manager); return(transport); }
public MessageDuplicationMemory GetOrAdd(DispatcherProcess dispatcher) { return _memories.GetOrAdd(dispatcher, s => new MessageDuplicationMemory()); }
IEngineProcess BuildConsumingProcess(IComponentContext context) { var log = context.Resolve<ISystemObserver>(); var streamer = context.Resolve<IEnvelopeStreamer>(); var dispatcher = _dispatcher(context); dispatcher.Init(); var queues = _fileQueues .Select(n => Path.Combine(_fullPath.Folder.FullName, n)) .Select(n => new DirectoryInfo(n)) .Select(f => new StatelessFileQueueReader(streamer, log, new Lazy<DirectoryInfo>(() => { var poison = Path.Combine(f.FullName, "poison"); var di = new DirectoryInfo(poison); di.Create(); return di; }, LazyThreadSafetyMode.ExecutionAndPublication), f, f.Name)) .ToArray(); var inbox = new FilePartitionInbox(queues, _decayPolicy); var quarantine = _quarantineFactory(context); var manager = context.Resolve<MessageDuplicationManager>(); var transport = new DispatcherProcess(log, dispatcher, inbox, quarantine, manager); return transport; }
IEngineProcess BuildConsumingProcess(IComponentContext context) { var log = context.Resolve<ISystemObserver>(); var dispatcher = _dispatcher(context); dispatcher.Init(); var streamer = context.Resolve<IEnvelopeStreamer>(); var factory = new AzurePartitionFactory(streamer, log, _config, _queueVisibilityTimeout, _decayPolicy); var notifier = factory.GetNotifier(_queueNames.ToArray()); var quarantine = _quarantineFactory(context); var manager = context.Resolve<MessageDuplicationManager>(); var transport = new DispatcherProcess(log, dispatcher, notifier, quarantine, manager); return transport; }