|
@@ -108,6 +108,7 @@ namespace Ropin.Environmentally.WebScada.Work
|
|
|
_aPIUrlData = aPIUrlData;
|
|
|
}
|
|
|
private object _locker = new object();
|
|
|
+ private int FirstTask1Run = 0;//是否第一次运行
|
|
|
public Task StartAsync(CancellationToken cancellationToken)
|
|
|
{
|
|
|
//Task.Run(async () =>
|
|
@@ -154,56 +155,62 @@ namespace Ropin.Environmentally.WebScada.Work
|
|
|
#region
|
|
|
Task.Run(async () =>
|
|
|
{
|
|
|
-
|
|
|
while (true)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- //await this._dispatcher.Broadcast(new DevEvent("niu","aa"));
|
|
|
- //var services = new ServiceCollection();
|
|
|
- //var provider = services.BuildServiceProvider();
|
|
|
- //var dispatcher = provider.GetRequiredService<IDispatcher>() as Dispatcher;
|
|
|
-
|
|
|
- //dispatcher.Register<DevEvent>()
|
|
|
- // .Subscribe<DevEventListener>();
|
|
|
- //await dispatcher.Broadcast(new DevEvent("niu"));
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- //List<Task> tasks = new List<Task>();
|
|
|
- //tasks.Add();
|
|
|
IList<TDEV_DevStore> devStore = null;
|
|
|
IList<TDEV_WebScadaDevSpot> devStoreSpot = null;
|
|
|
using (var scope = _provider.GetRequiredService<IServiceScopeFactory>().CreateScope())
|
|
|
{
|
|
|
var _redisService = scope.ServiceProvider.GetService<ICacheService>();
|
|
|
- //var _tmtnDevOpsRecordRepository = scope.ServiceProvider.GetService<ITmtnDevOpsRecordRepository>();
|
|
|
- //var solidWasteRecordItems = await _tmtnDevOpsRecordRepository.GetRecordsConditionAsync(new TmtnDevOpsRecordDetailSearchModel { bSolidWaste = true, C_DevStoreCode = "8793c6c8-d855-421e-9fa1-d25f914bb730", IsPagination = false, Start = DateTime.Now.AddDays(-1), End = DateTime.Now });
|
|
|
- //var devAccountConfig = await _devDevOpeAccountConfigService.GetByConditionAsync(t => t.C_DevStoreCode == "8793c6c8-d855-421e-9fa1-d25f914bb730");
|
|
|
+ string devStoreIsUpdate = "0";
|
|
|
+ string devStoreSpotIsUpdate = "0";
|
|
|
+ bool devStoreIsExist = _redisService.Exists(RedisEnum.TdevDevStoreUpdateRedisKey);
|
|
|
+ bool devStoreSpotIsExist = _redisService.Exists(RedisEnum.WebScadaDevSpotUpdateRedisKey);
|
|
|
+ if (devStoreIsExist)
|
|
|
+ {
|
|
|
+ devStoreIsUpdate = _redisService.Get(RedisEnum.TdevDevStoreUpdateRedisKey);
|
|
|
+ }
|
|
|
+ if (devStoreSpotIsExist)
|
|
|
+ {
|
|
|
+ devStoreSpotIsUpdate = _redisService.Get(RedisEnum.WebScadaDevSpotUpdateRedisKey);
|
|
|
+ }
|
|
|
using (var dbContext = scope.ServiceProvider.GetService<InspectionDbContext>())
|
|
|
{
|
|
|
- devStore = dbContext.TDEV_DevStore.AsQueryable().ToList();
|
|
|
- devStoreSpot = dbContext.TDEV_WebScadaDevSpot.AsQueryable().ToList();
|
|
|
- if (devStore != null && devStore.Count > 0)
|
|
|
+ if (FirstTask1Run == 0 || devStoreIsUpdate == "1" || devStoreSpotIsUpdate == "1")
|
|
|
{
|
|
|
- //devStore = devStore.Where(t => t.C_Status != "0" && t.C_Status != "5").ToList();
|
|
|
- devStore = devStore.Where(t => t.C_Status != "0").ToList();
|
|
|
+ devStore = dbContext.TDEV_DevStore.AsQueryable().ToList();
|
|
|
+ devStoreSpot = dbContext.TDEV_WebScadaDevSpot.AsQueryable().ToList();
|
|
|
+ if (devStore != null && devStore.Count > 0)
|
|
|
+ {
|
|
|
+ //devStore = devStore.Where(t => t.C_Status != "0" && t.C_Status != "5").ToList();
|
|
|
+ devStore = devStore.Where(t => t.C_Status != "0").ToList();
|
|
|
+ }
|
|
|
+ if (FirstTask1Run == 0 || devStoreIsUpdate == "1")
|
|
|
+ {
|
|
|
+ await _redisService.SetAsync("fanyibox_devStore", devStore);
|
|
|
+ if (devStoreIsExist) { await _redisService.RemoveAsync(RedisEnum.TdevDevStoreUpdateRedisKey); }
|
|
|
+ }
|
|
|
}
|
|
|
- await _redisService.SetAsync("fanyibox_devStore", devStore);
|
|
|
}
|
|
|
|
|
|
if (devStore != null)
|
|
|
{
|
|
|
- foreach (var devstore in devStore)
|
|
|
+ if (FirstTask1Run == 0|| devStoreSpotIsUpdate == "1")
|
|
|
{
|
|
|
- var predicate = PredicateBuilder.New<TDEV_WebScadaDevSpot>(true);//查询条件,推荐后台使用这种方式灵活筛选
|
|
|
- predicate = predicate.And(i => i.C_Status.Equals("1"));
|
|
|
- predicate = predicate.And(i => i.C_DevCode.Equals(devstore.C_ID));
|
|
|
- IEnumerable<TDEV_WebScadaDevSpot> items = devStoreSpot.Where(predicate).OrderBy(x => x.I_Sort).AsEnumerable();
|
|
|
- await _redisService.SetAsync("fanyibox_devStore_" + devstore.C_ID + "_spot", items);
|
|
|
+ foreach (var devstore in devStore)
|
|
|
+ {
|
|
|
+ var predicate = PredicateBuilder.New<TDEV_WebScadaDevSpot>(true);//查询条件,推荐后台使用这种方式灵活筛选
|
|
|
+ predicate = predicate.And(i => i.C_Status.Equals("1"));
|
|
|
+ predicate = predicate.And(i => i.C_DevCode.Equals(devstore.C_ID));
|
|
|
+ IEnumerable<TDEV_WebScadaDevSpot> items = devStoreSpot.Where(predicate).OrderBy(x => x.I_Sort).AsEnumerable();
|
|
|
+ await _redisService.SetAsync("fanyibox_devStore_" + devstore.C_ID + "_spot", items);
|
|
|
+ }
|
|
|
+ if (devStoreSpotIsExist) { await _redisService.RemoveAsync(RedisEnum.WebScadaDevSpotUpdateRedisKey); }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ FirstTask1Run = 1;
|
|
|
};
|
|
|
|
|
|
await Task.Delay(10000);
|