cloudflare 的 worker 和 vercel 里都有一个 waituntil 函数,这个函数可以在 http 请求返回后继续执行异步函数。 但是 aws lambda 里好像没有这种函数,该怎么实现这个效果呢
1
billzhuang 29 天前 via iPhone
各个语言自带的异步不行么
|
2
rizon OP 补充一下忘了说了。我是 nodejs 。
因为 http 请求返回后函数就会被直接终止了。所以才需要这个东西,在接口返回数据后依然继续运行。 |
3
crazywind 29 天前
lambda 只有在你代码执行完后才终止,你 hppt 请求做个阻塞,数据返回后直接运行不行吗?
|
5
rizon OP @crazywind 哦,不好意思我理解错了。你的意思是 http 请求结束后,继续阻塞运行是吧。
我也想这样,但是不知道 nodejs 里怎么做到 |
6
crazywind 29 天前
直接在 http 请求后面加代码就行了
|
7
honk 29 天前 via Android
|
8
alansfinal 29 天前 2
http response 返回以后 lambda function 就终止了,想实现后台任务可以看这篇 https://aws.amazon.com/blogs/compute/running-code-after-returning-a-response-from-an-aws-lambda-function/
|
9
rizon OP @alansfinal 靠谱啊兄弟,感谢。
然后再问一句,如果是腾讯或阿里云函数怎么做呢 |
10
Belmode 29 天前 via Android
这种一直后台运行,消耗的 GBS 岂不是海量的
|
11
jenrey 29 天前
[在 API Gateway 中设置后端 Lambda 支持异步调用]( https://docs.amazonaws.cn/en_us/apigateway/latest/developerguide/set-up-lambda-integration-async.html)
|
12
wudiiiii 29 天前
把你的异步函数写在另一个 lambda 里,调用一下不就完了
|
13
mrcotter2013 29 天前
一般在 lambda 里直接调用另一个 lambda 需要等待返回的结果,如果需要执行其它异步处理可以使用 SNS 或者 SQS 去触发
|
14
ClericPy 29 天前
听着怎么像是用 step 拆异步,一般 serverless 尽量避免等待和空转吧,保存个上下文逻辑同步调用异步应该可以吧
|
15
yuankui 29 天前
SNS/SQS/EventBridge
先 Google 一下这三个吧,可以满足你的需求。 |