其实我很早就有在一些交流群里发过
1.在不重启服务的情况下实时更新函数。 采用数据库做functionname - functiontext表
服务启动,将表加载进缓存,执行某一步骤时,根据functionname拉取缓存中的function。 此时采用EVAL方法。 因此,此时只需要更新缓存和数据库,即可实时更新函数。
关于EVAL方法的一些弊端,大家自行解决。我的套路就不提供了。
2.全局单传参 基于SESSION的全局单传参。 因为以前用EXPRESS用的很多。传参多的时候自己头疼,于是想到了一个方法。用session做储值。 我的session是挂在REDIS上的,也就是跑得内存,一个session你放很多东西进去也不会超过100KB的数量级。 哪怕是跑企业级服务,不用担心SESSION造成的内存崩溃。 而且SESSION是会过期的。
好了。言归正传。就是req.session 我tar了一个req.session.cache。
比如说从数据库读的用户信息提供全局一直使用。 req.session.cache.user=db;
另外比如我在最后一步 res.render{req.session.page,req.session.pageconfig}; 我在任何时候需要任何传参,只需要一个传参req就全部解决。 原生NODE可以写出同样的方法。
长期测试,以上两种方法的性能都很稳定。
9 回复