
原帖: /t/567079
本来选的 python 节点,
可能因为"大家", "都是", "怎样" "?" 这些关键字, 被移动到调查节点了
有个需求是可能会在运行中修改配置文档, 然后其他同样引用了该配置的模块也能拿到新的值
代码在原帖内
1 THESDZ 2019 年 5 月 24 日 缓存中读取,避免脏读即可 |
3 besttime 2019 年 5 月 24 日 配置中心服务了解一下? |
4 dapang1221 2019 年 5 月 24 日 正常应该是接受处理 USR1 信号,平滑重载更新配置缓存吧,你总不能开着文件句柄一直读,太难受了… |
5 firejoke OP @dapang1221 我原帖内最后就是这样, 启动时先载入配置缓存, 有修改时先修改文档, 在重新加载到缓存, 但我的方式感觉读取配置时怪怪的 |
7 pmispig 2019 年 5 月 24 日 增加一个接口,被调用时从外部拉取配置更新到内存里,我的 openrestry 就是这么操作的 |
8 firejoke OP @pmispig 那你在其他地方引用该配置的时候, 是用的时候在引用吗? 还是在开头就引用了? 也就是 from conf import xxx class X(): def xx(): XXX 还是 class X(): def xx(): from conf import xxx XXX |
9 mooncakejs 2019 年 5 月 24 日 赞同#4 |
11 julyclyde 2019 年 5 月 24 日 一般是 HUP 信号吧 |
12 firejoke OP @dapang1221 抱歉, 我去认真看一下 USR1 和如何应用 |
15 firejoke OP @dapang1221 看 USR1 的应用, 以及 uwsgi 的配置文档重启, 但那个适合静态的配置, 改一次重启一次服务, 可我只想依赖这个配置的模块能获取到新的值, 并不想重启整个服务, 因为我这只是一个工具, 并不会涉及到并发之类的 |
16 dapang1221 2019 年 5 月 24 日 @firejoke 不是重启整个服务啊,python 里用 signal 模块可以捕获到 USR1 或是上面 11#提到的 HUP 信号,然后你自己处理就好了,并不是让系统去给你重启 |
17 leegoo 2019 年 5 月 24 日 可以借鉴配置中心...或者说可以把配置写在数据库里面,系统文件里面都行... |
19 raighne 2019 年 5 月 24 日 用 apollo |
20 lolizeppelin 2019 年 5 月 25 日 inotify 监控配置文件,有变更就调用重载配置函数 配置文件的库的库最好支持参数设置是否可以热重载 请使用 python 里最牛逼的配置文件库 oslo.cfg |
21 firejoke OP @lolizeppelin 看 openstack 时, 看过 oslo 的用法, 没有仔细研究过, 确实可以试试 |
23 lolizeppelin 2019 年 5 月 27 日 |
24 firejoke OP @lolizeppelin 好! 之后也要搞 openstack, 大不了我把离线包加到依赖包里, 装我这个工具的时候, 直接装进去 |