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); } }
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)); }
// 处理 日常采集任务 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(); } }