Ejemplo n.º 1
0
        public void StartTimers()
        {
            StopTimers();

            foreach (var cfg in _config.GetAll())
            {
                var time = new ScheduleTimer(cfg.Value.AwaitTimePeriod, _queueEvent, cfg.Key, _localQueueProvider, true);
                _timers.Add(time);
            }
        }
Ejemplo n.º 2
0
        public LocalQueueProvider Build()
        {
            var queue = new ConcurrentDictionary <Type, ConcurrentQueue <object> >();

            foreach (var c in _config.GetAll())
            {
                if (!queue.TryAdd(c.Key, new ConcurrentQueue <object>()))
                {
                    throw new ArgumentException($"Key is exist {c.Key}");
                }
            }

            return(new LocalQueueProvider(queue, _config));
        }
Ejemplo n.º 3
0
        private void Flushing(MethodInfo methodPost)
        {
            try
            {
                var queueFlush = _config.GetAll().Where(p => p.Value.FlushOnStop);

                foreach (var f in queueFlush)
                {
                    PostWorker(f.Key, methodPost, -1);
                }
            }
            catch (Exception ex)
            {
                _plugin.LogFault(ex);
            }
            finally
            {
                _triggerAllCompleted.Set();
            }

            _triggerAllCompleted.Dispose();
        }