开发者社区 > 云原生 > Serverless > 正文

函数计算,FC函数里面写线程池异步调用相关代码,会有什么问题吗,为什么感觉异步调用的代码有时候生效有

函数计算,FC函数里面写线程池异步调用相关代码,会有什么问题吗,为什么感觉异步调用的代码有时候生效有时候很慢呢

展开
收起
飘飘斯嘉丽 2023-09-20 22:07:38 67 0
1 条回答
写回答
取消 提交回答
  • 函数计算是按照请求计费的,如果请求响应了,实例就会被冻结。子线程中的代码也就无法执行了。您有如下三种解决方法:  

    (推荐):您可以将需要进行异步处理的逻辑,单独作为一个函数,然后使用函数的异步调用功能,在原函数中使用 FC 的 SDK,通过异步调用的方式调用新函数,从而达到异步执行的效果。例如:您的需求是同步请求完成用户注册,然后异步给用户发送确认邮件。那么您需要改造您的函数,将发送邮件的逻辑放到一个新的函数里,然后在原有函数完成用户注册之后,在代码中使用 FC SDK 异步调用这个发送邮件的新函数。参考示例
    您可以在子线程中完成请求响应,从而避免函数被冻结。
    使用预留实例,并关闭预留实例的闲置计费功能。这样实例就不会被冻结了,不过费用较高。

    此答案来自钉钉群“阿里函数计算官网客户”

    2023-09-21 09:18:53
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Serverless 计算&消息 定义上云新范式 立即下载
    微服务 Serverless 的演进和实践 立即下载
    多IO线程优化版 立即下载