摘要: 1.同步与异步 假设存在 IO事件A:请求网络资源 (完成耗时5s) IO事件B:查询数据库 (完成耗时5s) 情况一:线程1工人在发起A请求后,一直阻塞等待,在A响应返回结果后再接着处理事件B,那总共需要耗时>10s. 情况二:线程1工人在发起A请求后,马上返回发起B请求然后返回,5s后事件A响应 阅读全文
posted @ 2020-04-29 12:26 海底下呼吸 阅读(2277) 评论(2) 推荐(5) 编辑
摘要: 一.问题 最近收到一位朋友的求助,说他项目上的权限授权出现了问题,现象是在基础服务授权角色:RC 权限:X.Default,在基础服务使用RC角色的用户登录能访问到权限X.Default资源,而在X服务访问不到。重启X服务后就可以访问。 项目框架:ABP Vnext 6.0版本 数据库:共享一个 微 阅读全文
posted @ 2023-06-16 15:53 海底下呼吸 阅读(892) 评论(3) 推荐(4) 编辑
摘要: 根据以往的经验,通过接口远程调用服务的原理大致如下: 服务端:根据接口定义方法的签名生成路由,并暴露Api。 客户端:根据接口定义方法的签名生成请求,通过HTTPClient调用。 这种经验可以用来理解ABP VNext自动API的方式,但如果不使用自动API并且控制器定义了路由的情况下,远程调用的 阅读全文
posted @ 2023-05-23 10:04 海底下呼吸 阅读(1430) 评论(0) 推荐(4) 编辑
摘要: 项目背景 公司采用项目制工作方式,因此在不同项目上可能存在多个团队开发独立的代码库,但通用的基础设施却是相同的,这可能导致每个项目都需要编写相同的代码,并重复造轮子。更严重的是,每个项目都有自己的用户体系,导致用户在使用不同的服务时需要重新登录,这不仅会破坏用户的体验,也不利于项目的维护和数据的积累 阅读全文
posted @ 2023-05-18 15:19 海底下呼吸 阅读(1533) 评论(9) 推荐(9) 编辑
摘要: 你是否曾经与我一样不理解async,await与task.wait()或者task.Result的区别? 接下来,一个Demo让你看出他们之间的区别。 static void Main(string[] args) { Console.WriteLine($"{Thread.CurrentThrea 阅读全文
posted @ 2020-04-21 17:19 海底下呼吸 阅读(3860) 评论(3) 推荐(0) 编辑
摘要: 启动Task有几种方式: 1.Task.Run() 2.new TaskFactory.StartNew() 3.var t=new Task(); t.start(); 平时用的最多是第一和第二种,那么他们之间有什么差异?接下来通过两个demo进行说明。 static void Main(stri 阅读全文
posted @ 2020-04-20 15:41 海底下呼吸 阅读(632) 评论(0) 推荐(1) 编辑