函数计算是按照请求计费的,如果请求响应了,实例就会被冻结,子线程中的代码也就无法执行了。解决这种情况有以下三种方案。
(推荐)您可以将需要进行异步处理的逻辑,单独作为一个函数,然后使用函数的异步调用功能,在原函数中使用函数计算的SDK或HTTP URL,通过异步调用的方式调用新函数,从而达到异步执行的效果。
例如:您的请求是同步请求完成用户注册,然后异步给用户发送确认邮件。那么您需要改造您的函数,将发送邮件的逻辑放到一个新的函数中,然后在原有的函数完成用户注册之后,在代码中使用函数计算的SDK异步调用发送邮件的新函数。
您可以在子线程中完成请求响应,从而避免函数被冻结。
使用预留实例,并关闭预留实例的闲置计费功能,这样实例就不会被冻结了,但费用较高。关于预留实例计费信息,请参见预留模式。
文档内容是否对您有帮助?