namespace IStation.Server { /// /// 监测数据存储计划任务 /// [DisallowConcurrentExecution]//此特性标识 必须等待这次任务执行完成后,才能执行下次任务 internal class StoreCronJob : IJob { private static readonly Service.MonitorRecord _service_monitor_record = new(); /// /// /// public Task Execute(IJobExecutionContext context) { return Task.Run(() => { var log_title = "监测数据存储计划任务中"; var receipt_time = DateTime.Now; try { GlobalHelper.GetMonitorRecordList(receipt_time, out List monitor_record_list); if (monitor_record_list == null || !monitor_record_list.Any()) { StoreLog.Info(log_title, "接收监测数据为空,自动跳过当前数据!"); return; } var bol = _service_monitor_record.Inserts(monitor_record_list); if (!bol) { StoreLog.Info(log_title, "监测数据,保存失败!"); } StoreLog.Info(log_title, $"监测数据,保存成功!"); } catch (Exception ex) { StoreLog.Error(log_title, "执行出错", ex); var e = new JobExecutionException(ex); throw e; } }); } } }