V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rizon
V2EX  ›  Amazon Web Services

aws lambda 里怎么实现 waituntil

  •  
  •   rizon ·
    othorizon · 87 天前 via iPhone · 2014 次点击
    这是一个创建于 87 天前的主题,其中的信息可能已经有所发展或是发生改变。

    cloudflare 的 worker 和 vercel 里都有一个 waituntil 函数,这个函数可以在 http 请求返回后继续执行异步函数。 但是 aws lambda 里好像没有这种函数,该怎么实现这个效果呢

    15 条回复    2024-10-03 07:36:45 +08:00
    billzhuang
        1
    billzhuang  
       87 天前 via iPhone
    各个语言自带的异步不行么
    rizon
        2
    rizon  
    OP
       87 天前 via iPhone
    补充一下忘了说了。我是 nodejs 。
    因为 http 请求返回后函数就会被直接终止了。所以才需要这个东西,在接口返回数据后依然继续运行。
    crazywind
        3
    crazywind  
       87 天前
    lambda 只有在你代码执行完后才终止,你 hppt 请求做个阻塞,数据返回后直接运行不行吗?
    rizon
        4
    rizon  
    OP
       87 天前 via iPhone
    @crazywind http 响应速度变慢了啊。这个东西场景必然是有的。不然 vercel 和 cloudflare 也不会去做
    rizon
        5
    rizon  
    OP
       87 天前 via iPhone
    @crazywind 哦,不好意思我理解错了。你的意思是 http 请求结束后,继续阻塞运行是吧。
    我也想这样,但是不知道 nodejs 里怎么做到
    crazywind
        6
    crazywind  
       87 天前
    直接在 http 请求后面加代码就行了
    alansfinal
        8
    alansfinal  
       87 天前   ❤️ 3
    http response 返回以后 lambda function 就终止了,想实现后台任务可以看这篇 https://aws.amazon.com/blogs/compute/running-code-after-returning-a-response-from-an-aws-lambda-function/
    rizon
        9
    rizon  
    OP
       87 天前 via iPhone
    @alansfinal 靠谱啊兄弟,感谢。
    然后再问一句,如果是腾讯或阿里云函数怎么做呢
    Belmode
        10
    Belmode  
       87 天前 via Android
    这种一直后台运行,消耗的 GBS 岂不是海量的
    jenrey
        11
    jenrey  
       86 天前
    wudiiiii
        12
    wudiiiii  
       86 天前
    把你的异步函数写在另一个 lambda 里,调用一下不就完了
    mrcotter2013
        13
    mrcotter2013  
       86 天前
    一般在 lambda 里直接调用另一个 lambda 需要等待返回的结果,如果需要执行其它异步处理可以使用 SNS 或者 SQS 去触发
    ClericPy
        14
    ClericPy  
       86 天前
    听着怎么像是用 step 拆异步,一般 serverless 尽量避免等待和空转吧,保存个上下文逻辑同步调用异步应该可以吧
    yuankui
        15
    yuankui  
       86 天前
    SNS/SQS/EventBridge

    先 Google 一下这三个吧,可以满足你的需求。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2558 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 04:50 · PVG 12:50 · LAX 20:50 · JFK 23:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.