目前我使用 云函数 编写了一些函数,如:
@engine.define
def test(**params):
if is_debug:
return 'debug'
else:
return 'not debug'
很简单的一个函数,根据 is_debug 变量,返回一个值。
现在,如果我需要非常方便的修改这个值,并让它立刻起效,想问下有什么好的方案呢?
方法一:
把 is_debug 定义为 python 脚本中的 global 变量,然后再添加一个函数,来修改它,如:
is_debug = False
@engine.define
def test(**params):
global is_debug
if is_debug:
return 'debug'
else:
return 'not debug'
@engine.define
def update_is_debug(**params):
global is_debug
is_debug = ...
测试了一下,这个方式是可以的,在运行时,通过调用 update_is_debug 修改 is_debug 的值后,再调用 test 函数的返回就会发生变化。
但是有个问题,一旦更新了 python 脚本,重新部署后,is_debug 的值就会恢复到 False,即使之前是 True。
这个问题,我暂时不知道如何解决好。
方案二:
在 LeanStorage 中建一个表,将 is_debug 的值保存期中,在 python 脚本中去读取这个值。
但是为了减少读取的次数,最好是这样:
- 每次表中的 is_debug 值更新,就调用一下 update_is_debug 函数,更新一下脚本中的值
-
每次重新部署脚本后,读取一下表中的 is_debug 值,初始化一下脚本中的 is_debug 值
@engine.define
def init_is_debug(**params):
global is_debug
is_debug = ... 从 LeanStorage 表中读取加载
1的话通过,hook 就可以实现,只是 2 的话,不知道要怎么才能在每次 deploy 部署以后,自动的调用一下某个初始化函数。
方案三:
使用 leancache,这个貌似有些没有必要,因为我的需求只是保存一些类似配置用的值,偶尔会更新。
想问下各位什么方案,才是比较好的。谢谢。
-
创建时间
16年12月9日
-
最后回复
16年12月9日
-
1
回复
-
1.2K
浏览
-
2
用户