首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Web API异步超时

Web API异步超时
EN

Stack Overflow用户
提问于 2015-09-18 09:47:26
回答 1查看 2.8K关注 0票数 0

我在一个Web api控制器中有一个现有的方法,它从一个内部API返回数据。此方法目前大约需要6秒才能完成

我需要调整此方法,以便向外部API发送最多4个请求,然后将结果保存到数据库。

每次调用外部API大约需要2-3秒才能完成。

虽然对外部API的调用很重要,但我不能延迟用户体验。因此,同步调用外部api不是一个选项,因为每次调用可能需要3秒*4= 12秒,然后必须调用内部api (5秒)= 17秒

为了解决这个问题,我做了以下更改:

使Web API方法异步创建异步调用外部api并返回任务的方法

-内部接口方法调用前,调用方法4次,将结果添加到列表中,使用Task.Delay()创建timeoutTask,持续5秒;

--调用内部API方法

循环遍历任务列表调用task.WhenAny( timeoutTask,timeoutTask)如果任务已完成但任务未完成,则它已超过超时,因此停止处理。

为了演示这个问题,我创建了一个新的Index MVC Web项目,并将等效代码添加到HomeController上的ASP.NET ()方法中。

我还添加了一个AsyncUnitTests.cs类,它具有与Web API方法完全相同的代码。

奇怪的是,单元测试按照我的预期工作,而web api调用不是这样。

有谁有什么想法吗?

示例应用程序:WebAPIAsync.zip

EN

回答 1

Stack Overflow用户

发布于 2015-09-18 10:24:53

我已经解决了!WebAPIAsyncWorking.zip

本质上-所有等待调用都需要调用.ConfigureAwait(false)方法,以确保它可以在不同的上下文中继续。

为了将来参考,我已经在这里上传了工作解决方案...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32648951

复制
相关文章
异步操作超出页面超时时间
原始地址:http://www.cnblogs.com/dudu/p/3825780.html
跟着阿笨一起玩NET
2018/09/19
1.2K0
Java Completable Future异步超时实践探索
Tech 导读 JDK 8 是一次重大的版本升级,新增了非常多的特性,其中之一便是 CompletableFuture。自此从 JDK 层面真正意义上的支持了基于事件的异步编程范式,弥补了 Future 的缺陷。在日常优化中,最常用手段便是多线程并行执行。这时候就会涉及到 CompletableFuture 的使用。
京东技术
2023/08/25
6870
Java Completable Future异步超时实践探索
异步 API 的设计
我最近读到一篇文章,作者介绍了他的做法,设计得很精细,我觉得值得借鉴,可以当作异步 API 的标准设计。
物流IT圈
2019/07/16
6160
异步 API 的设计
我最近读到一篇文章,作者介绍了他的做法,设计得很精细,我觉得值得借鉴,可以当作异步 API 的标准设计。
ruanyf
2018/12/25
1.3K0
Java web 开发 Session超时设置
在Java Web开发中,Session为我们提供了很多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。
MickyInvQ
2020/09/27
1.9K0
API和Web Api
API(应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
岳泽以
2022/10/26
2.5K0
Python异步Web编程
异步编程适用于那些频繁读写文件和频繁与服务器交互数据的任务,异步程序以非阻塞的方式执行I/O操作。这样意味着程序可以在等待客户机返回数据的同时执行其他任务,而不是无所事事的等待,浪费资源和时间。
jhao104
2019/12/05
2.7K0
Contact Manager Web API 示例[2] Web API Routing
联系人管理器web API是一个Asp.net web api示例程序,演示了通过ASP.NET Web API 公开联系信息,并允许您添加和删除联系人,示例地址http://code.msdn.microsoft.com/Contact-Manager-Web-API-0e8e373d。 Contact Manager Web API 示例[1]CRUD 操作 已经做了一个基本的介绍,本文主要介绍Web API Routing。 如果你已经熟悉 ASP.NET MVC,你会发现 Web API Routi
张善友
2018/01/22
1K0
Contact Manager Web API 示例[2] Web API Routing
联系人管理器web API是一个Asp.net web api示例程序,演示了通过ASP.NET Web API 公开联系信息,并允许您添加和删除联系人,示例地址http://code.msdn.microsoft.com/Contact-Manager-Web-API-0e8e373d。 Contact Manager Web API 示例[1]CRUD 操作 已经做了一个基本的介绍,本文主要介绍Web API Routing。 如果你已经熟悉 ASP.NET MVC,你会发现 Web API Routi
张善友
2018/01/22
9740
【SpringBoot WEB 系列】RestTemplate 之超时设置
一般来讲我们访问外部资源时,需要做一个保护,比如最常见的添加一个超时设置,避免一直被阻塞,RestTemplate 可以通过SimpleClientHttpRequestFactory来处理超时设置
一灰灰blog
2020/07/07
4.6K0
【SpringBoot WEB 系列】RestTemplate 之超时设置
.NET 中让 Task 支持带超时的异步等待
Task 自带有很多等待任务完成的方法,有的是实例方法,有的是静态方法。有的阻塞,有的不阻塞。不过带超时的方法只有一个,但它是阻塞的。
walterlv
2023/10/22
4010
.NET 中让 Task 支持带超时的异步等待
aiohttp 异步http请求-6.ClientTimeout 整个会话超时
ClientTimeout 是设置整个会话的超时时间,默认情况下是300秒(5分钟)超时。
上海-悠悠
2022/04/26
4.4K0
aiohttp 异步http请求-6.ClientTimeout 整个会话超时
WCF Web Api
什么是WCF Web Api ? 越来越多的互联网应用向外开放他们的功能,例如Flickr,Twitter和Facebook,国内也掀起了开放的浪潮。处理这些社会化的应用外,企业的组织也在暴露企业的应用功能。WCF Web API允许开发人员通过HTTP开放他们的应用程序、数据和服务。这允许开发人员可以充分利用HTTP作为应用程序的协议,应用程序可以和丰富的客户端进行交互,不仅仅是浏览器、移动设备、桌面应用还是其他的后端服务。他们还可以利用网络的高速缓存和代理的基础设施,通过提供适当的控制和实体头的方式,在
张善友
2018/01/29
8160
WCF Web Api
Web API 和 API 的区别
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,无需理解其内部工作机制细节,只需直接调用使用即可。
梨涡浅笑
2020/10/27
3.2K0
异步编程 - 10 Web Servlet的异步非阻塞处理
我们这里主要讨论Servlet3.0规范前的同步处理模型和缺点,Servlet3.0规范提供的异步处理能力与Servlet3.1规范提供的非阻塞IO能力,以及Spring MVC中提供的异步处理能力。
小小工匠
2023/09/09
8250
异步编程 - 10 Web Servlet的异步非阻塞处理
使用 ASP.NET Web API 构建超媒体 Web API
超媒体(通常称为应用程序状态的引擎 (HATEOAS))是具象状态传输 (REST) 的主要限制之一。有一种观念认为超媒体项目(如链接或表单)可用于说明客户端如何与一组 HTTP 服务交互。这迅速成为一个有趣的概念,在开发可演变的 API 设计时会用到它。这与我们通常与 Web 交互的方式没有任何不同。我们通常记住网站主页的一个入口点或 URL,然后使用链接浏览网站的各个不同区域。我们还使用表单,它附带预定义的操作或 URL 以提交网站执行某些操作所需的数据。 开发人员倾向在服务中提供所有支持的方法的静态描
张善友
2018/01/22
2.8K0
使用 ASP.NET Web API 构建超媒体 Web API
「Web编程API」- 02
请注意,本文编写于 2094 天前,最后修改于 174 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
4800
「Web编程API」- 02
异步JS中的Web Workers
一、了解Web Workers 介绍 js 的 Workers 前, 先思考什么是异步javascript? 为什么需要异步javascript的存在? 我们知道在编程模型上分为同步编程和异步编程:
BLUSE
2022/11/16
1.7K0
Web Crypto API简介
早年在web端做对称/非对称的加解密还是个很复杂的操作,由于没有js层面的基础库。很多基础设施只能从头开始。
王沛文
2018/07/31
6.2K0
点击加载更多

相似问题

超时Web Api请求?

412

带有web错误超时的异步web请求

14

实现异步web API

10

异步Web API端点

11

.NET Web API +会话超时

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文