protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
//每5分钟扫描一次
if (_lastScanTime.AddMinutes(5) > DateTime.Now)
{
await Task.Delay(10000, stoppingToken);
}
_lastScanTime = DateTime.Now; using (var unitOfWork = _unitOfWorkManager.Begin())
{
List<Log> techLogcationLogList = new List<Log>();
SvTech techInfo = new SvTech();
List<SvTech> techList = new List<SvTech>();
Log techLogcationLog = new Log();
Stopwatch watch = new Stopwatch();
watch.Start();
var LoginData = LoginSystemAsync().Result;//获取登录数据
if (LoginData.success == true)
{
var GpsData = GetTechLocationAsync(LoginData.id, LoginData.mds).Result;//获取定位数据
if (GpsData.success == true)
{ foreach (var item in GpsData.data)
{
foreach (var element in item.records)
{
Newtonsoft.Json.Linq.JArray location = (Newtonsoft.Json.Linq.JArray)element;
object[]? locationArr = location.ToObject<object[]>();
techInfo = _technicianRepository.GetAll().Where(s => s.gps_imei == locationArr[11].ToString()).FirstOrDefault();
if (techInfo != null)
{
techInfo.current_location = locationArr[2].ToString() + "," + locationArr[3].ToString();
techInfo.location_update_time = DateTime.Now;
techList.Add(techInfo); techLogcationLog.technician_id = techInfo.Id;
techLogcationLog.location = locationArr[2].ToString() + "," + locationArr[3].ToString();
techLogcationLog.update_datetime = DateTime.Now;
techLogcationLogList.Add(techLogcationLog);
}
}
}
}
else
{
//获取定位失败
}
}
else
{
//登录失败
}
if(techList.Count>0)
{
try
{
                 
_technicianLocationLogRepository.GetDbContext().BulkInsert(techLogcationLogList); //批量新增
_technicianRepository.GetDbContext().BulkUpdate(techList); //批量修改
watch.Stop();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
unitOfWork.Complete();
_lastScanTime = DateTime.Now; }
}
}

注意事项:需要在数据库链接字符串后面加上 AllowLoadLocalInfile=true

  "ConnectionStrings": {
"Default": "server=127.0.0.1;port=3306;user id=root;password=123456;database=test;AllowLoadLocalInfile=true"
},

否则会报如下错误

//错误提示  To use MySqlBulkLoader.Local=true, set AllowLoadLocalInfile=true in the connection string. See https://fl.vu/mysql-load-data”

最新文章

  1. 表单元素的submit()方法和onsubmit事件
  2. 实用的60个CSS代码片段
  3. Web渗透测试使用Kali Linux(一)渗透测试概要及环境部署
  4. JQuery-Ajax后台提交数据与获取数据
  5. apache ab压力测试报错(apr_socket_recv: Connection reset by peer (104))
  6. SSH整合配置二级缓存
  7. 博客Mac桌面编辑器-cnblogs
  8. UVa 10795 - A Different Task
  9. RTFM
  10. connect to a specific wifi network in Android programmatically
  11. Android(java)学习笔记240:多媒体之图形颜色的变化
  12. Microsoft Windows Sharepoint Services V3.0 安装图示
  13. android软键盘弹出隐藏的监听
  14. 像写C#一样编写java代码
  15. HTTP协议 详解
  16. Centos6.5系统关闭防火墙
  17. angular中如果几个请求相互不依赖,但是请求结果需要一起处理,可以使用
  18. vim 命令补充(1)
  19. &lt;线程池-定时任务&gt; ScheduledExecutorService之shutdown引发的RejectedExecutionException问题
  20. Spring Boot 揭秘与实战(四) 配置文件篇 - 有哪些很棒的特性

热门文章

  1. C++ primer笔记 -标准库类型
  2. C语言-Windows定时关机小程序
  3. Truenas Core安装(DOS界面)
  4. 原创:USB HID读卡器数据解析(R321-13.56MHZ读卡器)
  5. [ARC140D] One to One
  6. python中的import、from import以及import as的区别
  7. ApacheBench(压力测试)
  8. kora 简单使用实现Api接口 以及mongodb简单使用
  9. JRAT远控
  10. 我的第二次JAVA作业