static DataService() { mailService.Init(AlarmConfigurationBase.GetConfig().MailSmtp, AlarmConfigurationBase.GetConfig().MailUsername, AlarmConfigurationBase.GetConfig().MailPassword); mobileService.Init(AlarmConfigurationBase.GetConfig().MobileCategoryId); }
internal static void Init() { mailMemoryQueueService = LocalServiceLocator.GetService <IMemoryQueueService>(); mobileMemoryQueueService = LocalServiceLocator.GetService <IMemoryQueueService>(); alarmServiceStates = new List <AlarmServiceState>(); mailService = new MailService(); mobileService = new MobileService(); mailService.Init(AlarmConfiguration.GetConfig().MailSmtp, AlarmConfiguration.GetConfig().MailUsername, AlarmConfiguration.GetConfig().MailPassword); mobileService.Init(AlarmConfiguration.GetConfig().MobileCategoryId); mailMemoryQueueService.Init(new MemoryQueueServiceConfiguration("AlarmService_MailQueue", mailService.Send) { ConsumeItemCountInOneBatch = 1, ConsumeIntervalMilliseconds = AlarmConfiguration.GetConfig().MailMessageInerval, ConsumeIntervalWhenErrorMilliseconds = AlarmConfiguration.GetConfig().MailMessageErrorInerval, ConsumeErrorAction = MemoryQueueServiceConsumeErrorAction.EnqueueTwiceAndLogException }); mobileMemoryQueueService.Init(new MemoryQueueServiceConfiguration("AlarmService_MobileQueue", mobileService.Send) { ConsumeItemCountInOneBatch = 1, ConsumeIntervalMilliseconds = AlarmConfiguration.GetConfig().MobileMessageInerval, ConsumeIntervalWhenErrorMilliseconds = AlarmConfiguration.GetConfig().MobileMessageErrorInerval, ConsumeErrorAction = MemoryQueueServiceConsumeErrorAction.EnqueueTwiceAndLogException }); InitClearExpiredAlarmItem(); var config = AlarmConfiguration.GetConfig(); foreach (var item in config.AlarmConfigurationByStatistics) { var alarmServiceState = new AlarmServiceState { AlarmConfigurationItemName = item.Value.ConfigName, AlarmServiceStateItems = new Dictionary <string, AlarmServiceStateItem>(), }; item.Value.AlarmReceiverGroupNames.Values.Each(groupName => { alarmServiceState.AlarmServiceStateItems.Add(groupName, new AlarmServiceStateItem { ReceiverGroupName = groupName, AlarmReceiverGroupLastMailMessageTime = DateTime.MinValue, AlarmReceiverGroupLastMobileMessageTime = DateTime.MinValue, }); }); var interval = item.Value.CheckTimeSpan; var timer = new System.Threading.Timer(CheckActionForStatistics, item.Value.ConfigName, interval, interval); alarmServiceState.CheckTimer = timer; alarmServiceStates.Add(alarmServiceState); } foreach (var item in config.AlarmConfigurationByStates) { var alarmServiceState = new AlarmServiceState { AlarmConfigurationItemName = item.Value.ConfigName, AlarmServiceStateItems = new Dictionary <string, AlarmServiceStateItem>(), }; item.Value.AlarmReceiverGroupNames.Values.Each(groupName => { alarmServiceState.AlarmServiceStateItems.Add(groupName, new AlarmServiceStateItem { ReceiverGroupName = groupName, AlarmReceiverGroupLastMailMessageTime = DateTime.MinValue, AlarmReceiverGroupLastMobileMessageTime = DateTime.MinValue, }); }); var interval = item.Value.CheckTimeSpan; var timer = new System.Threading.Timer(CheckActionForState, item.Value.ConfigName, interval, interval); alarmServiceState.CheckTimer = timer; alarmServiceStates.Add(alarmServiceState); } AppInfoCenterService.LoggingService.Info(AlarmConfigurationBase.ModuleName, "AlarmService", "Init", string.Format("完成一次报警服务初始化,读取到 {0} 个状态报警,{1} 个统计报警", config.AlarmConfigurationByStates.Count.ToString(), config.AlarmConfigurationByStatistics.Count.ToString())); }