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;
}
});
}
}
}