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