Erlang应用:不同的环境

Posted

技术标签:

【中文标题】Erlang应用:不同的环境【英文标题】:Erlang application: different environment 【发布时间】:2014-01-08 22:50:03 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

依赖注入。

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

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

start(Config) -> ... .

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

【讨论】:

以上是关于Erlang应用:不同的环境的主要内容,如果未能解决你的问题,请参考以下文章

Linux 系统安装 Erlang 环境

Erlang/OTP 生产应用部署简介

Erlang 分布式编程

- RabbitMQ - 0 - 介绍linux 和windows安装

为啥我的 Erlang 应用程序崩溃了?

Erlang/OTP - 计时应用