解决报错

This commit is contained in:
ChenYi 2025-03-18 16:20:08 +08:00
parent 5b93fd2a96
commit 8334b5ee49
3 changed files with 24 additions and 25 deletions

View File

@ -37,18 +37,16 @@ namespace JiShe.CollectBus.ScheduledMeterReading
private readonly ILogger<BasicScheduledMeterReadingService> _logger; private readonly ILogger<BasicScheduledMeterReadingService> _logger;
private readonly ICapPublisher _capBus; private readonly ICapPublisher _capBus;
private readonly IRepository<ScheduledMeterReadingIssuedEventMessage, Guid> _meterReadingIssuedRepository; private readonly IRepository<ScheduledMeterReadingIssuedEventMessage, Guid> _meterReadingIssuedRepository;
private readonly IUnitOfWorkManager _unitOfWorkManager;
public BasicScheduledMeterReadingService( public BasicScheduledMeterReadingService(
ILogger<BasicScheduledMeterReadingService> logger, ILogger<BasicScheduledMeterReadingService> logger,
ICapPublisher capBus, ICapPublisher capBus,
IRepository<ScheduledMeterReadingIssuedEventMessage, Guid> meterReadingIssuedRepository, IUnitOfWorkManager unitOfWorkManager) IRepository<ScheduledMeterReadingIssuedEventMessage, Guid> meterReadingIssuedRepository)
{ {
_capBus = capBus; _capBus = capBus;
_logger = logger; _logger = logger;
_meterReadingIssuedRepository = meterReadingIssuedRepository; _meterReadingIssuedRepository = meterReadingIssuedRepository;
_unitOfWorkManager = unitOfWorkManager;
} }
/// <summary> /// <summary>
@ -81,7 +79,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
/// <returns></returns> /// <returns></returns>
public virtual async Task CreateToBeIssueTasks() public virtual async Task CreateToBeIssueTasks()
{ {
var redisCacheKey = $"{FreeRedisConst.CacheBasicDirectoryKey}{SystemType}:TaskInfo:*"; var redisCacheKey = $"{RedisConst.CacheBasicDirectoryKey}{SystemType}:TaskInfo:*";
var taskInfos = await FreeRedisProvider.Instance.KeysAsync(redisCacheKey); var taskInfos = await FreeRedisProvider.Instance.KeysAsync(redisCacheKey);
if (taskInfos == null || taskInfos.Length <= 0) if (taskInfos == null || taskInfos.Length <= 0)
{ {
@ -104,7 +102,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
string timeDensity = tempArryay[4];//采集频率 string timeDensity = tempArryay[4];//采集频率
//获取缓存中的电表信息 //获取缓存中的电表信息
var redisKeyList = $"{string.Format(FreeRedisConst.CacheMeterInfoKey, SystemType, meteryType, timeDensity)}*"; var redisKeyList = $"{string.Format(RedisConst.CacheMeterInfoKey, SystemType, meteryType, timeDensity)}*";
var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList); var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList);
if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0) if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0)
{ {
@ -185,7 +183,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
continue; continue;
} }
var redisCacheKey = $"{string.Format(FreeRedisConst.CacheMeterInfoKey, SystemType, MeterTypeEnum.Ammeter, itemTimeDensity.Key)}{item.Key}"; var redisCacheKey = $"{string.Format(RedisConst.CacheMeterInfoKey, SystemType, MeterTypeEnum.Ammeter, itemTimeDensity.Key)}{item.Key}";
#if DEBUG #if DEBUG
//每次缓存时,删除缓存,避免缓存数据错误 //每次缓存时,删除缓存,避免缓存数据错误
@ -252,7 +250,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
NextTask = DateTime.Now.AddMinutes(1) NextTask = DateTime.Now.AddMinutes(1)
}; };
var taskRedisCacheKey = string.Format(FreeRedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.Ammeter, itemTimeDensity.Key); var taskRedisCacheKey = string.Format(RedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.Ammeter, itemTimeDensity.Key);
await FreeRedisProvider.Instance.SetAsync(taskRedisCacheKey, nextTask); await FreeRedisProvider.Instance.SetAsync(taskRedisCacheKey, nextTask);
} }
@ -267,7 +265,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
{ {
//获取缓存中的电表信息 //获取缓存中的电表信息
int timeDensity = 5; int timeDensity = 5;
var redisKeyList = $"{string.Format(FreeRedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.Ammeter, timeDensity)}*"; var redisKeyList = $"{string.Format(RedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.Ammeter, timeDensity)}*";
var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList); var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList);
if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0) if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0)
{ {
@ -306,7 +304,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
NextTask = DateTime.Now.AddMinutes(timeDensity) NextTask = DateTime.Now.AddMinutes(timeDensity)
}; };
var redisCacheKey = string.Format(FreeRedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.Ammeter, timeDensity); var redisCacheKey = string.Format(RedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.Ammeter, timeDensity);
await FreeRedisProvider.Instance.SetAsync(redisCacheKey, nextTask); await FreeRedisProvider.Instance.SetAsync(redisCacheKey, nextTask);
_logger.LogInformation($"{nameof(AmmeterScheduledMeterOneMinuteReading)} {timeDensity}分钟采集电表数据处理完成"); _logger.LogInformation($"{nameof(AmmeterScheduledMeterOneMinuteReading)} {timeDensity}分钟采集电表数据处理完成");
@ -321,7 +319,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
{ {
//获取缓存中的电表信息 //获取缓存中的电表信息
int timeDensity = 5; int timeDensity = 5;
var redisKeyList = $"{string.Format(FreeRedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.Ammeter, timeDensity)}*"; var redisKeyList = $"{string.Format(RedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.Ammeter, timeDensity)}*";
var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList); var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList);
if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0) if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0)
{ {
@ -360,7 +358,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
NextTask = DateTime.Now.AddMinutes(timeDensity) NextTask = DateTime.Now.AddMinutes(timeDensity)
}; };
var redisCacheKey = string.Format(FreeRedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.Ammeter, timeDensity); var redisCacheKey = string.Format(RedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.Ammeter, timeDensity);
await FreeRedisProvider.Instance.SetAsync(redisCacheKey, nextTask); await FreeRedisProvider.Instance.SetAsync(redisCacheKey, nextTask);
_logger.LogInformation($"{nameof(AmmeterScheduledMeterFiveMinuteReading)} {timeDensity}分钟采集电表数据处理完成"); _logger.LogInformation($"{nameof(AmmeterScheduledMeterFiveMinuteReading)} {timeDensity}分钟采集电表数据处理完成");
@ -377,7 +375,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
//获取缓存中的电表信息 //获取缓存中的电表信息
int timeDensity = 15; int timeDensity = 15;
var redisKeyList = $"{string.Format(FreeRedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.Ammeter, timeDensity)}*"; var redisKeyList = $"{string.Format(RedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.Ammeter, timeDensity)}*";
var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList); var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList);
if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0) if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0)
{ {
@ -419,7 +417,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
NextTask = DateTime.Now.AddMinutes(timeDensity) NextTask = DateTime.Now.AddMinutes(timeDensity)
}; };
var redisCacheKey = string.Format(FreeRedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.Ammeter, timeDensity); var redisCacheKey = string.Format(RedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.Ammeter, timeDensity);
await FreeRedisProvider.Instance.SetAsync(redisCacheKey, nextTask); await FreeRedisProvider.Instance.SetAsync(redisCacheKey, nextTask);
stopwatch.Stop(); stopwatch.Stop();
@ -502,7 +500,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
foreach (var focusInfo in focusGroup) foreach (var focusInfo in focusGroup)
{ {
//构建缓存任务key依然 表计类型+采集频率+集中器地址存hash类型 //构建缓存任务key依然 表计类型+采集频率+集中器地址存hash类型
var redisCacheKey = $"{string.Format(FreeRedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.Ammeter, timeDensity)}{focusInfo.Key}"; var redisCacheKey = $"{string.Format(RedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.Ammeter, timeDensity)}{focusInfo.Key}";
foreach (var ammeterInfo in focusInfo.Value) foreach (var ammeterInfo in focusInfo.Value)
{ {
@ -703,7 +701,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
continue; continue;
} }
var redisCacheKey = $"{string.Format(FreeRedisConst.CacheMeterInfoKey, SystemType, MeterTypeEnum.WaterMeter, itemTimeDensity.Key)}{item.Key}"; var redisCacheKey = $"{string.Format(RedisConst.CacheMeterInfoKey, SystemType, MeterTypeEnum.WaterMeter, itemTimeDensity.Key)}{item.Key}";
Dictionary<string, WatermeterInfo> keyValuePairs = new Dictionary<string, WatermeterInfo>(); Dictionary<string, WatermeterInfo> keyValuePairs = new Dictionary<string, WatermeterInfo>();
foreach (var subItem in item) foreach (var subItem in item)
{ {
@ -720,7 +718,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
NextTask = DateTime.Now.AddMinutes(1) NextTask = DateTime.Now.AddMinutes(1)
}; };
var taskRedisCacheKey = string.Format(FreeRedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.WaterMeter, itemTimeDensity.Key); var taskRedisCacheKey = string.Format(RedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.WaterMeter, itemTimeDensity.Key);
await FreeRedisProvider.Instance.SetAsync(taskRedisCacheKey, nextTask); await FreeRedisProvider.Instance.SetAsync(taskRedisCacheKey, nextTask);
} }
_logger.LogInformation($"{nameof(InitAmmeterCacheData)} 初始化水表缓存数据完成"); _logger.LogInformation($"{nameof(InitAmmeterCacheData)} 初始化水表缓存数据完成");
@ -734,7 +732,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
{ {
//获取缓存中的水表信息 //获取缓存中的水表信息
int timeDensity = 5; int timeDensity = 5;
var redisKeyList = $"{string.Format(FreeRedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.WaterMeter, timeDensity)}*"; var redisKeyList = $"{string.Format(RedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.WaterMeter, timeDensity)}*";
var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList); var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList);
if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0) if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0)
{ {
@ -773,7 +771,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
NextTask = DateTime.Now.AddMinutes(timeDensity) NextTask = DateTime.Now.AddMinutes(timeDensity)
}; };
var redisCacheKey = string.Format(FreeRedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.WaterMeter, timeDensity); var redisCacheKey = string.Format(RedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.WaterMeter, timeDensity);
await FreeRedisProvider.Instance.SetAsync(redisCacheKey, nextTask); await FreeRedisProvider.Instance.SetAsync(redisCacheKey, nextTask);
@ -789,7 +787,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
//获取缓存中的电表信息 //获取缓存中的电表信息
int timeDensity = 5; int timeDensity = 5;
var redisKeyList = $"{string.Format(FreeRedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.WaterMeter, timeDensity)}*"; var redisKeyList = $"{string.Format(RedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.WaterMeter, timeDensity)}*";
var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList); var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList);
if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0) if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0)
{ {
@ -828,7 +826,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
NextTask = DateTime.Now.AddMinutes(timeDensity) NextTask = DateTime.Now.AddMinutes(timeDensity)
}; };
var redisCacheKey = string.Format(FreeRedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.WaterMeter, timeDensity); var redisCacheKey = string.Format(RedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.WaterMeter, timeDensity);
await FreeRedisProvider.Instance.SetAsync(redisCacheKey, nextTask); await FreeRedisProvider.Instance.SetAsync(redisCacheKey, nextTask);
@ -843,7 +841,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
{ {
//获取缓存中的电表信息 //获取缓存中的电表信息
int timeDensity = 15; int timeDensity = 15;
var redisKeyList = $"{string.Format(FreeRedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.WaterMeter, timeDensity)}*"; var redisKeyList = $"{string.Format(RedisConst.CacheTelemetryPacketInfoKey, SystemType, MeterTypeEnum.WaterMeter, timeDensity)}*";
var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList); var oneMinutekeyList = await FreeRedisProvider.Instance.KeysAsync(redisKeyList);
if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0) if (oneMinutekeyList == null || oneMinutekeyList.Length <= 0)
{ {
@ -882,7 +880,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
NextTask = DateTime.Now.AddMinutes(timeDensity) NextTask = DateTime.Now.AddMinutes(timeDensity)
}; };
var redisCacheKey = string.Format(FreeRedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.WaterMeter, timeDensity); var redisCacheKey = string.Format(RedisConst.CacheTasksToBeIssuedKey, SystemType, MeterTypeEnum.WaterMeter, timeDensity);
await FreeRedisProvider.Instance.SetAsync(redisCacheKey, nextTask); await FreeRedisProvider.Instance.SetAsync(redisCacheKey, nextTask);
@ -925,7 +923,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
{ {
string key = (string)item[0];//集中器地址对应的Redis缓存Key string key = (string)item[0];//集中器地址对应的Redis缓存Key
object[] fieldsAndValues = (object[])item[1];//缓存Key对应的Hash表数据集合 object[] fieldsAndValues = (object[])item[1];//缓存Key对应的Hash表数据集合
var redisCacheKey = $"{string.Format(FreeRedisConst.CacheMeterInfoKey, SystemType, meterType, timeDensity)}"; var redisCacheKey = $"{string.Format(RedisConst.CacheMeterInfoKey, SystemType, meterType, timeDensity)}";
string focusAddress = key.Replace(redisCacheKey, "");//集中器地址 string focusAddress = key.Replace(redisCacheKey, "");//集中器地址
var meterHashs = new Dictionary<string, T>(); var meterHashs = new Dictionary<string, T>();

View File

@ -25,8 +25,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
public EnergySystemScheduledMeterReadingService(ILogger<EnergySystemScheduledMeterReadingService> logger, public EnergySystemScheduledMeterReadingService(ILogger<EnergySystemScheduledMeterReadingService> logger,
ICapPublisher capBus, ICapPublisher capBus,
IRepository<ScheduledMeterReadingIssuedEventMessage, Guid> meterReadingIssuedRepository, IRepository<ScheduledMeterReadingIssuedEventMessage, Guid> meterReadingIssuedRepository) :base(logger, capBus, meterReadingIssuedRepository)
IUnitOfWorkManager unitOfWorkManager) :base(logger, capBus, meterReadingIssuedRepository, unitOfWorkManager)
{ {
} }

View File

@ -42,5 +42,7 @@ namespace JiShe.CollectBus.Common.Consts
/// 缓存表计下发指令数据集,{0}=>系统类型,{1}=>表计类别,{2}=>采集频率 /// 缓存表计下发指令数据集,{0}=>系统类型,{1}=>表计类别,{2}=>采集频率
/// </summary> /// </summary>
public const string CacheTelemetryPacketInfoKey = $"{CacheBasicDirectoryKey}{"{0}"}:TelemetryPacket:{"{1}"}:{"{2}"}:"; public const string CacheTelemetryPacketInfoKey = $"{CacheBasicDirectoryKey}{"{0}"}:TelemetryPacket:{"{1}"}:{"{2}"}:";
public const string CacheAmmeterFocusKey = "CacheAmmeterFocusKey";
} }
} }