评论

使用云函数切记不要再export 之外定义全局变量.

云函数注意事项

如题,云函数生产环境的运作方式为多例模式, 微信提供有线程池机制,你的云函数在一定时间不调用的话会被销毁.。下次调用的时候会重新创建functio.

记录下踩坑过程,

做了一个小程序,准备用云函数填充些mock数据,本地运行正常,然后提交上传后,一直卡在初始化,走不出去。

感觉不太对,做个测试,发现他内存中的数据不是销毁,而是每次实例化新的云函数以及旧实例复用.

贴下测试代码,

```

const cloud = require("wx-server-sdk");
const moment = require("moment");
cloud.init({ env`could-run-time-b32305`traceUsertrue });


let n = 0;
exports.main = async () => {
  n++;
  return { n };
};



可怜, 今天一天白写了..


2020年6月9日 07:12:55 补充下

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions/mechanism.html

最后一次编辑于  2020-06-09  
点赞 2
收藏
评论

9 个评论

  • 阿็果์
    阿็果์
    2020-08-08

    看文档后理解了,这个问题调试是正常的,找了一天了,头皮都掉了不少。文档这里不多读两遍还真不理解了

    2020-08-08
    赞同 1
    回复
  • 阿布都外力。
    阿布都外力。
    发表于移动端
    2020-09-17
    55
    2020-09-17
    赞同
    回复
  • 阿็果์
    阿็果์
    2020-08-08

    我今天也遇到同问题,那怎么解决了,想储存一些缓存数据

    2020-08-08
    赞同
    回复
  • 小肥羊🍊
    小肥羊🍊
    2020-06-08

    非常感谢整理

    2020-06-08
    赞同
    回复
  • 小肥羊🍊
    小肥羊🍊
    2020-06-08

    你的意思是说这个n并没有稳定的每次给你+1返回,而是偶发的随机数字吧?

    2020-06-08
    赞同
    回复 1
    • 莫名流年
      莫名流年
      2020-06-09
      不是每次返回+1的值,但不是随机的。看实例池子里面有没有空闲实例应该.
      2020-06-09
      回复
  • 舒克
    舒克
    2020-06-06

    多谢道友填坑

    2020-06-06
    赞同
    回复
  • 2020-06-06

    谢谢提醒~

    2020-06-06
    赞同
    回复
  • admin
    admin
    2020-06-05

    还是不太明白

    2020-06-05
    赞同
    回复 5
    • 莫名流年
      莫名流年
      2020-06-06
      意思就是exports.main 函数以外,尽量只定义常量或者公共方法,不要存数据。
      2020-06-06
      回复
    • 莫名流年
      莫名流年
      2020-06-06
      另外,本地测试这么做是没问题的,会给人一种错觉.
      2020-06-06
      回复
    • admin
      admin
      2020-06-06回复莫名流年
      是这句let n = 0;不对吗?新手勿怪,嘻嘻
      2020-06-06
      回复
    • 莫名流年
      莫名流年
      2020-06-06回复admin
      不是,云函数在线上运行的时候是多例模式,你可以理解为同时创建好几个方法来给用户提供服务,类似于你把一份代码复制成几份分别执行一样.
      2020-06-06
      回复
    • admin
      admin
      2020-06-07回复莫名流年
      明白了,谢谢
      2020-06-07
      回复
  • 糊糊湖
    糊糊湖
    2020-06-05

    所以要看文档呀~~

    2020-06-05
    赞同
    回复 4
登录 后发表内容