我使用gen_server和gen_fsm实现了一个otp系统。存在要被读取,该软件以运行需要一些值的配置文件,一个示例可以是:读取很多时间配置文件或使用gen_server状态?
{values, [value1, value2, value3]}.
我使用的宏,以提取这些值中的一个
define(VALUES, my_utility:get_conf_value(values)).
的问题如下:因为?VALUES可能会经常被调用,因此配置文件被多次解析,我应该在gen_fsm的gen_server状态中嵌入?VALUES,并在需要时随时调用解压缩函数?
事实上,我非常欣赏以前的实现,因为只需通过更改配置文件中的值,就可以更改软件的行为,而不需要进行任何#state {}更改或调用。
您更喜欢哪种解决方案?
正是我的意思..在配置文件错误的情况下,系统将崩溃...安全性呢?此外,避免重新启动的一种解决方案可能是调用服务器以更新值... – user601836 2011-05-24 12:21:37
安全性:如果有人访问文件系统并能够操作配置文件会怎么样。 – 2011-05-24 12:28:26
破坏文件的一种解决方案是在重新读取内容时验证内容,如果内容损坏则忽略它(并在日志中输出一些错误,以便观察问题)。 – 2011-05-24 12:29:53