我有一个用c#编写的AWS lambda函数。此函数负责调用5-6个API调用(Post请求)。
问题:我希望lambda函数在一秒钟内执行并响应。如何异步进行API调用,使lambda函数能够在我的时间限制内完成所有这些操作,而不必等待API调用的响应?理想情况下,我想实现一个fire-and-forget-API调用系统,该系统可以毫不延迟地返回最终响应。
根据AWS lambda文档,我必须在lambda中对异步调用使用wait操作符,以避免在异步调用完成之前完成函数。
我错过什么了吗?还是有办法做到这一点?
谢啦
如果你只是想要一堆火,然后忘记,那么不要用等待。只需使用HttpClient方法(get、put等)调用API,就可以了。这些方法返回一个任务
对于您的用例,使用AWS步骤函数将提供一个完全管理的解决方案。步骤如下。
与自定义Lambda流实现相比,步骤函数没有什么好处。
您不能在无服务器请求的“外部”运行代码。尝试这样做只会带来痛苦——因为您的无服务器主机不知道您的代码不完整,所以可以随意终止您的托管过程。
正确的解决方案是使用队列分隔两个lambda。第一个(面向外部的)lambda接受POST请求,在队列上丢弃消息,并将其响应返回给调用者。
第二个(仅限内部)lambda监视队列并执行API调用。
我正在调用一个外部API,这是缓慢的。目前,如果我已经调用API获取一些订单一段时间,调用可以分成页面(分页)。 因此,获取订单可能是进行多个调用,而不是1个调用。有时,每次呼叫可能是10秒左右,所以总共可能是一分钟左右,这太长了。 null 如果有人能给我指明正确的方向--那将不胜感激。
本文向大家介绍JavaScript 异步调用,包括了JavaScript 异步调用的使用技巧和注意事项,需要的朋友参考一下 问题 可修改下面的 aa() 函数,目的是在一抄后用 console.log() 输出 want-value 但是,有额外要求: aa() 函数可以随意修改,但是不能有 console.log() 执行 console.log() 语句里不能有 setTimeout 包裹 解
Provider端异步执行将阻塞的业务从Dubbo内部线程池切换到业务自定义线程,避免Dubbo线程池的过度占用,有助于避免不同服务间的互相影响。异步执行无益于节省资源或提升RPC响应性能,因为如果业务执行需要阻塞,则始终还是要有线程来负责执行。 注意:Provider端异步执行和Consumer端异步调用是相互独立的,你可以任意正交组合两端配置 Consumer同步 - Provider同步 C
从v2.7.0开始,Dubbo的所有异步编程接口开始以CompletableFuture为基础 基于 NIO 的非阻塞实现并行调用,客户端不需要启动多线程即可完成并行调用多个远程服务,相对多线程开销较小。 使用CompletableFuture签名的接口 需要服务提供者事先定义CompletableFuture签名的服务,具体参见服务端异步执行接口定义: public interface Asyn
我写了一个处理列表列表的Spring批处理作业。 Reader返回List of List。处理器处理每个ListItem并返回已处理的List。Writer将内容写入DB并从List of List中sftp。 我有一个从spring批处理程序调用异步REST api的用例。在ListenableFuture响应上,我实现了LitenableFutureCallback来处理成功和失败,这正如预
以下是我尝试使用“可完成未来”类实现的用例 我有一个id列表,我想为每个id调用api 我想从api调用中获得响应,并将其保存在列表或映射中,以便进一步处理 我也不想等到得到所有api调用的响应。我想设定一个时间限制,并在那之前获取所有可用的数据 我尝试了以下代码,但它不能正常工作 您能指导我这个用例吗?我需要 1.超时设置为 2。异步数据处理 3.未知的项目数。 我正在使用Java 8。 谢谢。