mirror of
https://gitee.com/ThingsGateway/ThingsGateway.git
synced 2025-10-25 20:53:10 +08:00
7.2.0.62
优化上传插件批量性能
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<AdminVersion>7.2.0.45</AdminVersion>
|
||||
<PluginVersion>9.0.2.38</PluginVersion>
|
||||
<ProPluginVersion>9.0.2.66</ProPluginVersion>
|
||||
<PluginVersion>9.0.2.42</PluginVersion>
|
||||
<ProPluginVersion>9.0.2.67</ProPluginVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
||||
@@ -30,10 +30,15 @@ public abstract class BusinessBaseWithCacheAlarmModel<VarModel, DevModel, AlarmM
|
||||
/// <param name="data"></param>
|
||||
protected virtual void AddCache(List<CacheDBItem<AlarmModel>> data)
|
||||
{
|
||||
|
||||
if (_businessPropertyWithCache.CacheEnable && data?.Count > 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (var item in data)
|
||||
{
|
||||
item.Id = CommonUtils.GetSingleId();
|
||||
}
|
||||
var dir = CacheDBUtil.GetFilePath(CurrentDevice.Id.ToString());
|
||||
var fileStart = CacheDBUtil.GetFileName($"{CurrentDevice.PluginName}_{typeof(AlarmModel).FullName}_{nameof(AlarmModel)}");
|
||||
var fullName = dir.CombinePathWithOs($"{fileStart}{CacheDBUtil.EX}");
|
||||
|
||||
@@ -30,10 +30,16 @@ public abstract class BusinessBaseWithCacheDeviceModel<VarModel, DevModel> : Bus
|
||||
/// <param name="data"></param>
|
||||
protected virtual void AddCache(List<CacheDBItem<DevModel>> data)
|
||||
{
|
||||
|
||||
if (_businessPropertyWithCache.CacheEnable && data?.Count > 0)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
foreach (var item in data)
|
||||
{
|
||||
item.Id = CommonUtils.GetSingleId();
|
||||
}
|
||||
var dir = CacheDBUtil.GetFilePath(CurrentDevice.Id.ToString());
|
||||
var fileStart = CacheDBUtil.GetFileName($"{CurrentDevice.PluginName}_{typeof(DevModel).FullName}_{nameof(DevModel)}");
|
||||
var fullName = dir.CombinePathWithOs($"{fileStart}{CacheDBUtil.EX}");
|
||||
|
||||
@@ -38,6 +38,10 @@ public abstract class BusinessBaseWithCacheVariableModel<VarModel> : BusinessBas
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (var item in data)
|
||||
{
|
||||
item.Id = CommonUtils.GetSingleId();
|
||||
}
|
||||
var dir = CacheDBUtil.GetFilePath(CurrentDevice.Id.ToString());
|
||||
var fileStart = CacheDBUtil.GetFileName($"{CurrentDevice.PluginName}_{typeof(VarModel).FullName}_{nameof(VarModel)}");
|
||||
var fullName = dir.CombinePathWithOs($"{fileStart}{CacheDBUtil.EX}");
|
||||
|
||||
@@ -121,6 +121,8 @@ public abstract class BusinessBaseWithCacheIntervalAlarmModel<VarModel, DevModel
|
||||
/// </summary>
|
||||
protected virtual async Task IntervalInsert()
|
||||
{
|
||||
var vardatas = CurrentDevice.VariableRunTimes.Values.ToList();
|
||||
var devdatas = CollectDevices.Values.ToList();
|
||||
while (!DisposedValue)
|
||||
{
|
||||
if (CurrentDevice?.KeepRun == false)
|
||||
@@ -137,9 +139,9 @@ public abstract class BusinessBaseWithCacheIntervalAlarmModel<VarModel, DevModel
|
||||
if (_exTTimerTick.IsTickHappen())
|
||||
{
|
||||
// 间隔推送全部变量
|
||||
foreach (var variableRuntime in CurrentDevice.VariableRunTimes)
|
||||
foreach (var variableRuntime in vardatas)
|
||||
{
|
||||
VariableChange(variableRuntime.Value, variableRuntime.Value.Adapt<VariableBasicData>());
|
||||
VariableChange(variableRuntime, variableRuntime.Adapt<VariableBasicData>());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -152,9 +154,9 @@ public abstract class BusinessBaseWithCacheIntervalAlarmModel<VarModel, DevModel
|
||||
if (_exT2TimerTick.IsTickHappen())
|
||||
{
|
||||
// 间隔推送全部设备
|
||||
foreach (var deviceRuntime in CollectDevices)
|
||||
foreach (var deviceRuntime in devdatas)
|
||||
{
|
||||
DeviceChange(deviceRuntime.Value, deviceRuntime.Value.Adapt<DeviceBasicData>());
|
||||
DeviceChange(deviceRuntime, deviceRuntime.Adapt<DeviceBasicData>());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,6 +111,8 @@ public abstract class BusinessBaseWithCacheIntervalDeviceModel<VarModel, DevMode
|
||||
/// <returns>异步任务</returns>
|
||||
protected virtual async Task IntervalInsert()
|
||||
{
|
||||
var vardatas = CurrentDevice.VariableRunTimes.Values.ToList();
|
||||
var devdatas = CollectDevices.Values.ToList();
|
||||
while (!DisposedValue)
|
||||
{
|
||||
if (CurrentDevice?.KeepRun == false)
|
||||
@@ -127,9 +129,9 @@ public abstract class BusinessBaseWithCacheIntervalDeviceModel<VarModel, DevMode
|
||||
if (_exTTimerTick.IsTickHappen())
|
||||
{
|
||||
// 上传所有变量信息
|
||||
foreach (var variableRuntime in CurrentDevice.VariableRunTimes)
|
||||
foreach (var variableRuntime in vardatas)
|
||||
{
|
||||
VariableChange(variableRuntime.Value, variableRuntime.Value.Adapt<VariableData>());
|
||||
VariableChange(variableRuntime, variableRuntime.Adapt<VariableData>());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -143,9 +145,9 @@ public abstract class BusinessBaseWithCacheIntervalDeviceModel<VarModel, DevMode
|
||||
if (_exT2TimerTick.IsTickHappen())
|
||||
{
|
||||
// 上传所有设备信息
|
||||
foreach (var deviceRuntime in CollectDevices)
|
||||
foreach (var deviceRuntime in devdatas)
|
||||
{
|
||||
DeviceChange(deviceRuntime.Value, deviceRuntime.Value.Adapt<DeviceBasicData>());
|
||||
DeviceChange(deviceRuntime, deviceRuntime.Adapt<DeviceBasicData>());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,6 +86,7 @@ public abstract class BusinessBaseWithCacheIntervalVariableModel<T> : BusinessBa
|
||||
/// <returns>表示异步操作的任务</returns>
|
||||
protected virtual async Task IntervalInsert()
|
||||
{
|
||||
var vardatas = CurrentDevice.VariableRunTimes.Values.ToList();
|
||||
while (!DisposedValue)
|
||||
{
|
||||
if (CurrentDevice?.KeepRun == false)
|
||||
@@ -94,36 +95,31 @@ public abstract class BusinessBaseWithCacheIntervalVariableModel<T> : BusinessBa
|
||||
continue;
|
||||
}
|
||||
//间隔上传
|
||||
IntervalInsertVariable();
|
||||
if (_businessPropertyWithCacheInterval.IsInterval)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_exTTimerTick.IsTickHappen())
|
||||
{
|
||||
//间隔推送全部变量
|
||||
foreach (var variableRuntime in vardatas)
|
||||
{
|
||||
VariableChange(variableRuntime, variableRuntime.Adapt<VariableData>());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogMessage.LogWarning(ex, BusinessBaseLocalizer["IntervalInsertVariableFail"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
await Delay(default).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 执行间隔插入变量的操作。
|
||||
/// </summary>
|
||||
protected virtual void IntervalInsertVariable()
|
||||
{
|
||||
if (_businessPropertyWithCacheInterval.IsInterval)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_exTTimerTick.IsTickHappen())
|
||||
{
|
||||
//间隔推送全部变量
|
||||
foreach (var variableRuntime in CurrentDevice.VariableRunTimes)
|
||||
{
|
||||
VariableChange(variableRuntime.Value, variableRuntime.Value.Adapt<VariableData>());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogMessage.LogWarning(ex, BusinessBaseLocalizer["IntervalInsertVariableFail"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 在启动前执行的异步操作。
|
||||
|
||||
@@ -19,12 +19,10 @@ public class CacheDBItem<T> : IPrimaryIdEntity
|
||||
{
|
||||
public CacheDBItem()
|
||||
{
|
||||
Id = CommonUtils.GetSingleId();
|
||||
}
|
||||
|
||||
public CacheDBItem(T value)
|
||||
{
|
||||
Id = CommonUtils.GetSingleId();
|
||||
Value = value;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Version>7.2.0.61</Version>
|
||||
<Version>7.2.0.62</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user