namespace IStation.Server
|
{
|
/// <summary>
|
/// 监测数据存储计划任务
|
/// </summary>
|
[DisallowConcurrentExecution]//此特性标识 必须等待这次任务执行完成后,才能执行下次任务
|
internal class StoreCronJob : IJob
|
{
|
|
private static readonly Service.MonitorRecord _service_monitor_record = new();
|
|
/// <summary>
|
///
|
/// </summary>
|
public Task Execute(IJobExecutionContext context)
|
{
|
return Task.Run(() =>
|
{
|
var log_title = "监测数据存储计划任务中";
|
var receipt_time = DateTime.Now;
|
try
|
{
|
GlobalHelper.GetMonitorRecordList(receipt_time, out List<Model.MonitorRecord> 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;
|
}
|
|
});
|
}
|
}
|
}
|