Esempio n. 1
0
        public void WeekDataPoolTester()
        {
            BaseAggConfig config = CreateCommonConfig(AggType.Week);

            config.TimeRange = new AggTimeRange {
                DataBeginHour = 1, DataEndHour = 2, DateBegin = 1, DateEnd = 1
            };

            DataPoolFactory.Init();
            IDataPool dataPool = DataPoolFactory.GetDataPool(config);

            Assert.IsNotNull(dataPool);

            DateTime   time  = new DateTime(2015, 2, 15);
            AggRawData data  = dataPool.GetAggRawData(time);
            int        count = 0;

            foreach (var tmp in data.Datas)
            {
                count += tmp.Values.Count;
            }
            Console.WriteLine(string.Format("共读取{0}条数据", count));
            Assert.IsTrue(data.TimeTag == "2015W7");
            Assert.IsTrue(data.FactorId == config.FactorId);
            Assert.IsTrue(data.Datas.Count > 0);
            //Assert.IsTrue(data.LastAggDatas != null);
        }
Esempio n. 2
0
        public static IDataPool GetDataPool(BaseAggConfig config)
        {
            IDataPool iDataPool = null;

            if (!dataPoolTypes.ContainsKey(config.Type.ToString()))
            {
                return(null);
            }

            Type type = dataPoolTypes[config.Type.ToString()];

            try
            {
                iDataPool = Activator.CreateInstance(type) as IDataPool;
                if (iDataPool != null)
                {
                    iDataPool.Config = config;
                }
            }
            catch (Exception e)
            {
                Log.ErrorFormat("create aggprocess failed, type:{0},error:{1},stacktrace{2}", config.Type.ToString(), e.Message, e.StackTrace);
            }
            return(iDataPool);
        }
Esempio n. 3
0
        public void MonthDataPoolTester()
        {
            BaseAggConfig config = CreateCommonConfig(AggType.Month);

            config.TimeRange = new AggTimeRange {
                DataBeginHour = 1, DataEndHour = 3, DateBegin = 1, DateEnd = 1
            };

            DataPoolFactory.Init();
            IDataPool dataPool = DataPoolFactory.GetDataPool(config);

            Assert.IsNotNull(dataPool);

            DateTime  time = new DateTime(2015, 2, 15);
            Stopwatch sw   = new Stopwatch();

            sw.Start();
            AggRawData data = dataPool.GetAggRawData(time);

            sw.Stop();
            Console.WriteLine(string.Format("MonthDataPoolTester 耗时:{0}ms", sw.ElapsedMilliseconds));
            int count = 0;

            foreach (var tmp in data.Datas)
            {
                count += tmp.Values.Count;
            }
            Console.WriteLine(string.Format("共读取{0}条数据", count));
            Assert.IsTrue(data.TimeTag == "201502");
            Assert.IsTrue(data.FactorId == config.FactorId);
            Assert.IsTrue(data.Datas.Count > 0);
            //Assert.IsTrue(data.LastAggDatas != null);
        }
        public CollectionsManager(IDataPool <TData> dataPool, IStateManagementEventsAggregator <TData> eventsAggregator)
        {
            DataPool         = dataPool;
            EventsAggregator = eventsAggregator;

            CollectionsByDescriptor = new ConcurrentDictionary <INonTerminalDescriptor, ICollection <ICollection <TData> > >();
            DescriptorByCollection  = new ConcurrentDictionary <ICollection <TData>, INonTerminalDescriptor>();
            BuilderByCollection     = new ConcurrentDictionary <ICollection <TData>, IDataBuilder <TData> >();

            EventsAggregator.CompositionChangedEvent += WhenCompositionChanged;
        }
        public DataRepository(IDataRetriever <TData> dataRetriever, IDataPool <TData> dataPool,
                              ICollectionsManager <TData> collectionsManager, IInstancesBuilder <TData> instancesBuilder,
                              IStateManagementEventsAggregator <TData> eventsAggregator)
        {
            _semaphore = new DescriptorSemaphore();

            DataRetriever      = dataRetriever;
            DataPool           = dataPool;
            CollectionsManager = collectionsManager;
            InstancesBuilder   = instancesBuilder;
            EventsAggregator   = eventsAggregator;

            EventsAggregator.TerminalDataAvailableEvent    += OnTerminalDataAvailableEvent;
            EventsAggregator.NonTerminalDataAvailableEvent += OnNonTerminalDataAvailableEvent;
        }
Esempio n. 6
0
        public void CreateDataPoolTester()
        {
            BaseAggConfig config = CreateCommonConfig(AggType.Day);

            config.TimeRange = new AggTimeRange {
                DataBeginHour = 1, DataEndHour = 2, DateBegin = 0, DateEnd = 0
            };
            DataPoolFactory.Init();
            IDataPool dataPool = DataPoolFactory.GetDataPool(config);

            Assert.IsNotNull(dataPool);

            config   = CreateCommonConfig(AggType.Week);
            dataPool = DataPoolFactory.GetDataPool(config);
            Assert.IsNotNull(dataPool);

            config   = CreateCommonConfig(AggType.Month);
            dataPool = DataPoolFactory.GetDataPool(config);
            Assert.IsNotNull(dataPool);
        }
Esempio n. 7
0
 public AggTask(IDataPool dataPool, IAggProcess aggProcess)
 {
     this.dataPool = dataPool;
     this.process  = aggProcess;
 }
Esempio n. 8
0
 public DataRefresher(IDataRetriever <TData> dataRetriever, IDataPool <TData> dataPool, IStateManagementEventsAggregator <TData> eventsAggregator)
 {
     EventsAggregator = eventsAggregator;
     DataRetriever    = dataRetriever;
     DataPool         = dataPool;
 }