首页 函数计算(旧版) 服务支持 常见问题 函数调用FAQ 在函数代码中创建了进程/线程/协程,为什么它们没有被执行?

在函数代码中创建了进程/线程/协程,为什么它们没有被执行?

更新时间: 2024-02-05 17:05:41

函数计算是按照请求计费的,如果请求响应了,实例就会被冻结,子线程中的代码也就无法执行了。解决这种情况有以下三种方案。

  • (推荐)您可以将需要进行异步处理的逻辑,单独作为一个函数,然后使用函数的异步调用功能,在原函数中使用函数计算的SDK或HTTP URL,通过异步调用的方式调用新函数,从而达到异步执行的效果。

    例如:您的请求是同步请求完成用户注册,然后异步给用户发送确认邮件。那么您需要改造您的函数,将发送邮件的逻辑放到一个新的函数中,然后在原有的函数完成用户注册之后,在代码中使用函数计算的SDK异步调用发送邮件的新函数。

  • 您可以在子线程中完成请求响应,从而避免函数被冻结。

  • 使用预留实例,并关闭预留实例的闲置计费功能,这样实例就不会被冻结了,但费用较高。关于预留实例计费信息,请参见预留模式

阿里云首页 函数计算(旧版) 相关技术圈