Esempio n. 1
0
 internal void InitializeDtuGroups()
 {
     try
     {
         var groups = DbAccessorHelper.DbAccessor.QuerySensorGroups();
         foreach (SensorGroup sg in groups)
         {
             DtuGroup dg = dtuGroups.FirstOrDefault(g => g.Exists(sg.GroupId) || g.Exists(sg.DtuId));
             if (dg != null)
             {
                 dg.Add(sg);
             }
             else
             {
                 DtuGroup dgp = new DtuGroup();
                 dgp.Add(sg);
                 dtuGroups.Add(dgp);
             }
         }
     }
     catch (Exception e)
     {
         Log.WarnFormat("InitializeDtuGroups error: {0}", e);
     }
 }
Esempio n. 2
0
        internal static string GetTaskGuid(string dtucode)
        {
            DtuGroup dg = dtuGroups.FirstOrDefault(sg => sg.Exists(dtucode));

            if (dg == null)
            {
                return(Guid.NewGuid().ToString());
            }
            return(dg.GetGuid(dtucode, DateTime.Now));
        }
Esempio n. 3
0
 // 处理 日常采集任务
 public void ArrangeTimedTask()
 {
     lock (this)
     {
         this.CreateSchedule(_dtus.Count);
         this.InitializeDtuGroups();
         IList <DtuNode> nodes     = _dtus.Values.ToList();
         DateTimeOffset  startTime = DateBuilder.NextGivenMinuteDate(null, 1);
         foreach (DtuNode dtu in nodes)
         {
             DtuGroup dgp = dtuGroups.FirstOrDefault(d => d.Exists(dtu.DtuCode));
             this.ScheduleJob(dtu, startTime, dgp != null ? dgp.DacInterval : dtu.DacInterval);
         }
         _schedule.Start();
     }
 }