优化拉取机制

This commit is contained in:
tongfei
2024-01-15 15:47:02 +08:00
parent 5e61f1f6a4
commit c4da0c2626
4 changed files with 58 additions and 18 deletions

View File

@@ -11,6 +11,7 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using WMS.Web.Core.Dto.Erp; using WMS.Web.Core.Dto.Erp;
using WMS.Web.Domain.IService.Public; using WMS.Web.Domain.IService.Public;
using WMS.Web.Domain.Services.Public;
namespace WMS.Web.Api namespace WMS.Web.Api
{ {
@@ -20,22 +21,11 @@ namespace WMS.Web.Api
{ {
var host= CreateHostBuilder(args).Build(); var host= CreateHostBuilder(args).Build();
//to do you want //to do you want
Task.Run(() => //<2F>첽-ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>֯<EFBFBD><D6AF><EFBFBD><EFBFBD>Ӧ<EFBFBD>̣<EFBFBD><CCA3>ͻ<EFBFBD><CDBB><EFBFBD>
using (var scope = host.Services.CreateScope())
{ {
//<2F>첽-ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ErpBaseDataSync.Sync(scope.ServiceProvider);
using (var scope = host.Services.CreateScope()) }
{
var sercice = scope.ServiceProvider.GetRequiredService<IErpService>();
sercice.BillQueryForMaterial().GetAwaiter().GetResult();
var cache = scope.ServiceProvider.GetRequiredService<IMemoryCache>();
var cache_key = "erp_materials_list";
var materials = cache.Get<List<ErpMaterialDto>>(cache_key);
Console.WriteLine("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺" + materials.Count);
}
});
host.Run(); host.Run();
} }

View File

@@ -4333,6 +4333,11 @@
<param name="sourceBillNos"></param> <param name="sourceBillNos"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="T:WMS.Web.Domain.Services.Public.ErpBaseDataSync">
<summary>
同步erp基础数据
</summary>
</member>
<member name="T:WMS.Web.Domain.Services.Public.ErpBasicDataExtendService"> <member name="T:WMS.Web.Domain.Services.Public.ErpBasicDataExtendService">
<summary> <summary>
erp基础数据扩展服务 erp基础数据扩展服务

View File

@@ -0,0 +1,45 @@
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Domain.IService.Public;
namespace WMS.Web.Domain.Services.Public
{
/// <summary>
/// 同步erp基础数据
/// </summary>
public static class ErpBaseDataSync
{
public static Task Sync(IServiceProvider serviceProvider)
{
var sercice = serviceProvider.GetRequiredService<IErpService>();
Task.Run(() =>
{
//异步-同步下物料数据
sercice.BillQueryForMaterial().GetAwaiter().GetResult();
});
Task.Run(() =>
{
//异步-同步下组织数据
sercice.BillQueryForOrg().GetAwaiter().GetResult();
});
Task.Run(() =>
{
//异步-同步下客户数据
sercice.BillQueryForCustomer().GetAwaiter().GetResult();
});
Task.Run(() =>
{
//异步-同步下供应商数据
sercice.BillQueryForSupplier().GetAwaiter().GetResult();
});
return Task.CompletedTask;
}
}
}

View File

@@ -1137,7 +1137,7 @@ namespace WMS.Web.Domain.Services.Public
var list = new List<ErpCustomerDto>(); var list = new List<ErpCustomerDto>();
//备注因为供应商数据不是很多就不能和获取物料一样循环获取组织这里就获取10000条数据就行了 //备注因为供应商数据不是很多就不能和获取物料一样循环获取组织这里就获取10000条数据就行了
var beginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); var beginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
_logger.LogInformation($"供应商拉取-开始时间:{beginTime}"); _logger.LogInformation($"客户拉取-开始时间:{beginTime}");
int skip = 0; int skip = 0;
//4.参数json化 //4.参数json化
while (true) while (true)
@@ -1169,10 +1169,10 @@ namespace WMS.Web.Domain.Services.Public
skip++; skip++;
} }
var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
_logger.LogInformation($"供应商拉取-结束时间:{endTime}"); _logger.LogInformation($"客户拉取-结束时间:{endTime}");
//5.供应商集合进行缓存 //5.供应商集合进行缓存
_memoryCache.Set(cache_customer_key, list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromDays(3))); _memoryCache.Set(cache_customer_key, list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromDays(3)));
_logger.LogInformation($"供应商拉取-总条数:{list.Count}"); _logger.LogInformation($"客户拉取-总条数:{list.Count}");
return ResultList<ErpCustomerDto>.ReSuccess(list); return ResultList<ErpCustomerDto>.ReSuccess(list);
} }