最近碰到的问题,调用云函数有时候超时,而且告警群报错了。
涉及的业务逻辑:该云函数执行多为同步逻辑,正常情况需要100-300毫秒,如果某条记录有个字段数组长度超过1000,且同时用户几百人调用,云函数中update该数组会超时报错,阻塞了。
除了继续优化云函数逻辑,例如尽量异步,拆解步骤多个云函数,还有其他的思路吗?
还是,云函数的局限性是执行较为耗时不适合上千人同时调用的场景?
开发文档中相关解释:
云函数并发数:云函数的并发数量是指在任意指定时间对函数代码的执行数量。对于当前的 SCF 函数来说,每个发布的事件请求就会执行一次。因此,这些触发器发布的事件数(即请求量)会影响函数的并发数。开发者以使用以下公式来估算并发的函数实例总数目。
每秒请求量 * 函数执行时间(按秒)
例如,考虑一个处理存储事件的函数,假定函数平均用时0.2秒(即200毫秒),存储每秒发布300个请求至函数。这样将同时生产 300 * 0.2 = 60 个函数实例。
60个函数实例就是基本只能供大概60个人同时调用??
1、目测不是并发的原因;
2、超时的话,就把云函数的超时调整为20秒再试呗。
云函数的并发数是1000哦