private void Init(ConfigScheduleEntity configSchedule) { _monitor = SystemlogMgr.GetScheduleMonitor(configSchedule.Idx); if (_monitor == null) { throw new Exception("[ScheduleInfo] no monitor,schedule id:" + configSchedule.Idx); } _monitor.ScheduleTimeType = configSchedule.TimeType; _scheduleConfig = configSchedule; _scheduleTimes = configSchedule.Times; bool isChampion = CheckIsChampion(configSchedule.Idx); switch (configSchedule.TimeType) { default: case (int)EnumScheduleTimeType.TimeTable: _timeConfig = new ScheduleTimeConfigTimeTable(configSchedule.Setting, isChampion); break; case (int)EnumScheduleTimeType.Interval: _timeConfig = new ScheduleTimeConfigInterval(configSchedule.Setting); break; } if (_scheduleConfig.RetryTimes > 0) { _maxRetryTimes = _scheduleConfig.RetryTimes - 1; } if (configSchedule.RunDelay >= 0) { _nextInvokedDateTime = DateTime.Now.AddMinutes(configSchedule.RunDelay); } else { _nextInvokedDateTime = _timeConfig.GetNext(DateTime.Now); } if (_scheduleConfig.TimeType == (int)EnumScheduleTimeType.Interval && _timeConfig.GetIntervalTime() < 1000) { _isIntensive = true; } Log("下次时间" + _nextInvokedDateTime); }