优化拉取机制
This commit is contained in:
@@ -11,6 +11,7 @@ using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Core.Dto.Erp;
|
||||
using WMS.Web.Domain.IService.Public;
|
||||
using WMS.Web.Domain.Services.Public;
|
||||
|
||||
namespace WMS.Web.Api
|
||||
{
|
||||
@@ -20,22 +21,11 @@ namespace WMS.Web.Api
|
||||
{
|
||||
var host= CreateHostBuilder(args).Build();
|
||||
//to do you want
|
||||
Task.Run(() =>
|
||||
{
|
||||
//<2F>첽-ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<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())
|
||||
{
|
||||
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);
|
||||
ErpBaseDataSync.Sync(scope.ServiceProvider);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
host.Run();
|
||||
}
|
||||
|
||||
|
||||
@@ -4333,6 +4333,11 @@
|
||||
<param name="sourceBillNos"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Services.Public.ErpBaseDataSync">
|
||||
<summary>
|
||||
同步erp基础数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Services.Public.ErpBasicDataExtendService">
|
||||
<summary>
|
||||
erp基础数据:扩展服务
|
||||
|
||||
45
src/WMS.Web.Domain/Services/Public/ErpBaseDataSync.cs
Normal file
45
src/WMS.Web.Domain/Services/Public/ErpBaseDataSync.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1137,7 +1137,7 @@ namespace WMS.Web.Domain.Services.Public
|
||||
var list = new List<ErpCustomerDto>();
|
||||
//备注:因为供应商数据不是很多,就不能和获取物料一样循环获取;组织这里就获取10000条数据就行了
|
||||
var beginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||
_logger.LogInformation($"供应商拉取-开始时间:{beginTime}");
|
||||
_logger.LogInformation($"客户拉取-开始时间:{beginTime}");
|
||||
int skip = 0;
|
||||
//4.参数json化
|
||||
while (true)
|
||||
@@ -1169,10 +1169,10 @@ namespace WMS.Web.Domain.Services.Public
|
||||
skip++;
|
||||
}
|
||||
var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||
_logger.LogInformation($"供应商拉取-结束时间:{endTime}");
|
||||
_logger.LogInformation($"客户拉取-结束时间:{endTime}");
|
||||
//5.供应商集合进行缓存
|
||||
_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);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user