为了降低服务端压力,在函数中可以使用缓存能力,将小程序中使用的静态数据、不需要及时更新的数据设置缓存(例如商品列表、积分排行榜等)。
设置缓存后,端上发起的接口访问将在云服务网关直接返回缓存的数据,不会调用到函数服务中。
function.invoke(name: string, data: object, handler: string, exts: any): Promise<Result>;
函数调用参数中,可传入exts字段用于缓存控制。
cacheType为缓存的模式,枚举值说明如下:
cacheType |
说明 |
0 |
标准缓存:命中条件为相同小程序+相同用户+相同请求。 |
1 |
用户无关缓存:命中条件为相同小程序+相同请求。 |
2 |
小程序无关(适用于模板实例化模式)缓存:命中条件为相同用户+相同请求。 |
3 |
全局缓存:命中条件为相同的请求。 |
cacheTime:缓存失效时间,cacheType不为空的情况下生效,不填默认300,单位为秒,最大不超过3600。
前置完成函数初始化
try { const result = await cloud.function.invoke('helloworld', // 函数名称 {}, // 业务参数 'main', // handler名称 { // exts扩展信息字段 "cacheType":1, // 缓存类型 "cacheTime":3600 // 缓存时间 }); if (result.success) { my.alert({ title: 'success ', content: JSON.stringify(result.data) }) } else { my.alert({ title: 'fail ', content: JSON.stringify(result.data) }) } } catch (e) { my.alert({ content: '云函数调用失败 ' + e.message }) }