如何为Phoenix应用程序传递自定义erl选项?

jd2*_*d20 6 elixir phoenix-framework

我的Phoenix应用程序正在达到Erlang VM的最大进程限制,为特定Phoenix应用程序指定erl(如+ P)的自定义选项的最佳方法是什么(甚至更好,仅适用于MIX_ENV = PROD)?有没有办法通过应用程序的配置文件来做到这一点?或者如果没有,也许当我运行"mix phoenix.server"时?

Gaz*_*ler 14

您可以使用elixir以下--erl标志运行应用程序:

elixir --erl "+P 10000000" -S mix phoenix.server
Run Code Online (Sandbox Code Playgroud)

如果你想要一个shell,你可以使用iex:

iex --erl "+P 10000000" -S mix phoenix.server
Run Code Online (Sandbox Code Playgroud)

以下是elixir命令用法的副本.

用法:elixir [选项] [.exs文件] [数据]

-v打印版本并退出
-e"命令"评估给定的命令()
-r"文件"需要给定的文件/模式(
)
-S"脚本"查找并执行给定的脚本
-pr"文件"需要给定的文件/ patterns中的模式()
-pa"path"将给定路径添加到Erlang代码路径(
)
-pz"path"将给定路径附加到Erlang代码路径()--
app"app"启动给定应用程序及其依赖项(
)--
erl"switches"要传递给Erlang的开关(*) -
name"name"为分布式节点制作并指定一个名称
--sname"name" 为分布式节点制作并指定一个短名称
- cookie"cookie"为此分布式节点设置cookie
--hidden创建隐藏节点
--detached启动从控制台分离的Erlang VM
--werl使用Erlang的Windows shell GUI(仅限Windows)
- no -halt不停止Erlang VM执行后

**标有(*)的选项可以多次
给出**.exs文件后给出的选项或 - 传递给执行的代码
**可以使用ELIXIR_ERL_OPTIONS或--erl将选项传递给Erlang运行时

如果您正在使用,exrm那么您也可以在vm.args文件https://hexdocs.pm/exrm/release-configuration.html中提供此信息.