public LogCollectService(ILogWriteRepository logWriteRepository, IAppConfiguration config) { this.logWriteRepository = logWriteRepository; queue = new NetMQQueue <RawLogData>(); poller = new NetMQPoller { queue }; queue.ReceiveReady += (sender, args) => { var item = queue.Dequeue(); var lst = new List <RawLogData> { item }; if (config.BatchSizeToIndex > 1) { for (int i = 0; i < config.BatchSizeToIndex; ++i) { if (queue.TryDequeue(out RawLogData outData, new TimeSpan(10)) == false) { break; //no more items in the Queue so we''ll make the system wait for the Queue } lst.Add(outData); } } Thread.Sleep(1000); ProcessLogFromQueue(lst); }; poller.RunAsync(); }
public LogUpdateService(ILog log, ILogWriteRepository logWriteRepository) { this.log = log; this.logWriteRepository = logWriteRepository; }