zoukankan      html  css  js  c++  java
  • 生产环境项目问题记录系列(二):同步方法调用异步方法

    描述一下问题背景,公司部分项目还在使用老三层框架,存在跨库join的情况,在服务化的改造过程中,这些跨库join的老三层从都要被换成对应的服务接口。

    目前有个项目通过sql访问了C端产品组的三张表,并且时跨库join,对方开发组要回收表的访问权,所有sql访问的都要改成接口访问。

    C端产品组提供的服务接口为.Net Core的Api接口,异步(.net core里HttpClient已经不再提供同步访问了)。而这边调用的是一个老三层架构的定时任务,需要在同步方法里调用异步接口。当然你会问为什么不把你的方法也改成异步的,我只能说一言难尽,不是我不想改,太难了,async就像病毒一样,一方面这是个定时任务,改成异步没有什么收益,另一方面改造完测试要测一堆地方,伤筋动骨没必要,大家打一波。。李姐。

    在更换过程中遇到的问题就是同步调异步接口调不通,我分别尝试了以下几种方式:()

    (1).....Async().Wait():失败,接口阻塞

    (2)await .....Async().ConfigureAwait(false)

    (3).....Async().Resutt()

    在上面这几种方法失败后,又去百度了几种方法,都不行,最后找到一种解决方式如下:

    Task task=Task.Run(async ()=>await ......Async());

    task.wait();

    虽然是个小问题,也没花费多少时间,不过万一没找到这种方法估计就头疼了,随手记录一下。

  • 相关阅读:
    pandas 数据预处理实例演示
    pandas 包的基本使用
    Numpy 包的基础结构(下)
    Numpy 包的基础结构(上)
    Anaconda的基本使用
    黄金点游戏结果
    个人作业-Week2:案例分析
    结对项目-地铁出行路线规划程序(续)
    关于结对和团队组建
    关于个人博客和Github地址提交
  • 原文地址:https://www.cnblogs.com/weiBlog/p/10236012.html
Copyright © 2011-2022 走看看