Erlang应用程序:不同的环境

时间:2014-01-08 22:50:03

标签: erlang

在erlang应用程序中为应用程序环境变量设置不同值的推荐方法是什么?

我的意思是:您如何在erlang应用程序中支持应用程序中的不同环境(例如开发,阶段,生产)?例如,我希望在已知主机上使用特定虚假服务进行测试,生产代码使用不同主机上的真实服务器。

2 个答案:

答案 0 :(得分:5)

您也可以使用应用程序配置文件。您还可以在启动erlang控制台时将config作为参数传递,该控制台可以帮助您设置环境变量。因此,您可以根据环境传递test.config或production.config,无需编译代码并启动它们。

您可以在此处找到更多信息

http://www.erlang.org/doc/man/config.html

答案 1 :(得分:1)

依赖注入。

test_setup() -> [ {host,"http://..."}, ... ].
prod_setup() -> [ {host,"http://..."}, ... ].

test_start() -> start(test_setup()).
prod_start() -> start(prod_setup()).

start(Config) -> ... .

或者,政策模块。制定一个其接口与您需要的东西相匹配的策略,然后传入包含所需策略的模块的名称。想想ETS / DETS。