Erlang应用程序:不同的环境

Erlang应用程序:不同的环境,erlang,Erlang,在erlang应用程序中,为应用程序环境变量设置不同值的推荐方法是什么 我这里的意思是:如何在erlang应用程序中支持应用程序中的不同环境(例如开发、阶段、生产)?例如,我希望测试在已知主机上使用特定的假服务,生产代码在不同主机上使用真实服务器。依赖注入 test_setup() -> [ {host,"http://..."}, ... ]. prod_setup() -> [ {host,"http://..."}, ... ]. test_start() -> sta

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

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

依赖注入

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

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

start(Config) -> ... .
或者,策略模块。制定一个接口与所需内容匹配的策略,然后传入包含所需策略的模块的名称。想想ETS/DETS。

依赖注入

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

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

start(Config) -> ... .

或者,策略模块。制定一个接口与所需内容匹配的策略,然后传入包含所需策略的模块的名称。考虑ETS/DETS。

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

你可以在这里找到更多信息


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

你可以在这里找到更多信息