コード例 #1
0
        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();
        }
コード例 #2
0
ファイル: LogUpdateService.cs プロジェクト: adwaitya/LogR
 public LogUpdateService(ILog log, ILogWriteRepository logWriteRepository)
 {
     this.log = log;
     this.logWriteRepository = logWriteRepository;
 }