当前位置: 首页 > news >正文

漂流瓶做任务网站软件商店app

漂流瓶做任务网站,软件商店app,企业为什么要验资,重庆提供行业网站建站报价背景最近做了个项目有个接口涉及到批量计算的问题#xff0c;耗时比较长。大家都知道#xff0c;接口等待时间太长肯定是不可取的。那么只能做异步处理了#xff1b;但是问题来了这个项目没有什么消息队列、redis之类的使用#xff0c;本着怎么简单怎么来的思路#xff0c…背景最近做了个项目有个接口涉及到批量计算的问题耗时比较长。大家都知道接口等待时间太长肯定是不可取的。那么只能做异步处理了但是问题来了这个项目没有什么消息队列、redis之类的使用本着怎么简单怎么来的思路新搞个消息队列不现实这时候多线程派上用场。再次遇到问题于是噼里啪啦写了一顿发现有个问题我的方法涉及到很多ef core  数据库操作在多线程的条件下报错如下:System.InvalidOperationException: A second operation was started on this context instance before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid2097913生命周期为Scope方式随着请求的结束实例生命周期也会被释放因此在多线程下若共享实例容易出现实例已释放的错误报错如下Instances cannot be resolved and nested lifetimes cannot be created from this LifetimeScope as it (or one of its parent scopes) has already been disposed.Autofac   at Autofac.Core.Lifetime.LifetimeScope.BeginLifetimeScope(Object tag)。通过注入IServiceProvider就是这种方式也是不行的还是需要改到原来的代码还是违背初衷。峰回路转本来一筹莫展的突然想到既然接口一次太慢了那就分2次执行第二次可以使用多线程触发自己调用自己的耗时接口这样就不需要改到原来的底层逻辑要做的仅仅是把自己的方法拆分成2个。1、请求一个异步方法然后接口直接返回/// summary/// 批量  添加  一级指标 数据74.22分全省第10名/// /summary/// param nameentity/param/// returns/returns[HttpPost][Route(adminaddAreadatabatch)]public bool addAreadatabatch(ListAreadataDto entity){//  foreach (var item in entity ?? new ListAreadataDto())//  {//   try//   {_chartBll.Addbat(entity);//  }//   catch (Exception ex)//  {//     _logger.Error(ex);//  }//  } ThreadPool.QueueUserWorkItem(new WaitCallback(InsertNewsInfoExt), JsonConvert.SerializeObject(entity));return true;}2、这里做一个http请求private void InsertNewsInfoExt(object info){var client  new RestClient(http://xxxx/api/ningdeChart/updateAreadata);client.Timeout  -1;var request  new RestRequest(Method.POST);request.AddHeader(Content-Type, application/json);var body  info.ToString();request.AddParameter(application/json, body, ParameterType.RequestBody);IRestResponse response  client.Execute(request);Console.WriteLine(response.Content);}3、在原来的接口adminaddAreadatabatch做下二次拆分提供一个新的api[HttpPost][Route(updateAreadata)]public bool updateAreadata(ListAreadataDto entity){foreach (var item in entity ?? new ListAreadataDto()){try{_logger.Info(updateAreadata);_chartBll.updateAreadata(item.areaid, item.t1);}catch (Exception ex){_logger.Error(ex);}}return true;}问题得到解决。
http://www.sadfv.cn/news/243858/

相关文章:

  • 云服务器 网站建设学校网站的报告
  • 技术支持保定网站建设 定兴网站开发书籍
  • 怎么在58建设企业的网站台州云推广网站
  • 国内网站空间主机辽宁大连最新消息今天
  • 无为网站设计iis7.5部署网站
  • 常州网站建设公司排名专业网页设计师
  • 如何上传网站到空间淄博网站建设yx718
  • 来宾住房和城乡建设网站广告联盟赚钱app
  • 郑州陆港开发建设有限公司网站wordpress每篇文章加水印
  • 网站的用途企业信息管理系统实训报告
  • 网站的首页标题在哪里设置的山东省建设管理信息网站
  • 做网站用那一种语言最好域名价格一览表
  • 网站托管团队iis5.1建网站
  • 宁波网站推广软件服务如何用ps做网站
  • 刚成立公司如何做网站手机商城源码
  • 河南微网站开发怎么做网站公司宣传资料
  • .net手机网站源码南京网站建设包括哪些
  • 邹平做网站的公司有哪些网页设计素材网站花
  • 湖南网站制作外包wordpress浮动音乐
  • 建设网站需要哪些东西外贸网站 模板
  • 做网站网页需要什么技术网站在百度上搜索不到
  • 海外音乐类网站做的比较好的互联网如何挣钱创业
  • 图片交易网站如何建设网站建设与维护 许宝良 课件
  • 淘宝内部优惠券网站建设网络直播网站建设
  • 作文网下载windows优化大师的作用
  • 网站系统建设的主要意义长春高端品牌网站建设
  • 企业建设网站的作用投资公司注册
  • 服务器和域名如何做网站微网站免费开发平台
  • 广州网站排名优化在线申请
  • 精选网站建设排行榜网站经营方案 备案