using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IStation.Server { /// /// 监测任务辅助类 /// public class MonitorJobHelper : IJobHelper { private readonly RabbitMqQueueHelper _queueHelper = new RabbitMqQueueHelper(); /// /// 开始任务 /// public void StartJob() { _queueHelper.Receive>(ConfigHelper.StoreQueueName, (data) => { try { if (data == null) { LogHelper.Error("监测数据存储服务中,数据序列化失败,自动跳过当前数据!"); return true; } if (data == null || data.Count < 1) { LogHelper.Error($"监测数据存储服务中,数据记录为空,自动跳过当前数据!"); return true; } #region 写日志 LogHelper.Info($"监测数据存储服务中,数据数量-{data.Count}!"); #endregion var result = new Service.MonitorRecord().Inserts(data); if (!result) { LogHelper.Error($"监测数据存储服务中,当前通道处于阻塞状态 !"); } return result; } catch (Exception ex) { LogHelper.Error("监测数据存储服务中,数据消息队列出错,自动跳过该条数据", ex); return true; } }); } /// /// 取消任务 /// public void CancelJob() { if (_queueHelper == null) return; _queueHelper.Close(); } } }