文档

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

更新时间:
一键部署

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

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

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

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

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

  • 本页导读 (1)