Jun*_*ooq 3 elixir phoenix-framework
我正在按照我的项目中的规定进行操作。但是我只想在生产模式下运行它,而不是在开发模式下运行,为此,我尝试了Mix.env一下,并通过给我:dev或它在本地:prod工作,但它不适用于在线API。出现错误,因为没有像env这样的东西。
我想通过某种模式匹配功能使其仅用于生产
Task.start(fn ->
if user |> Intercom.get_user |> intercom_user? do
Logger.info "User '#{user.username}' already present at Intercom."
else
Intercom.create_user(user, user_agent, requester_ip)
end
end)
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
您必须在config/*.exs文件中为此设置一个配置,这Mix通常不包含在生产版本中。您可以只存储env值或更有意义的名称,例如:create_intercom_user。
在config/dev.exs和config/test.exs:
config :my_app, :create_intercom_user, false
Run Code Online (Sandbox Code Playgroud)
在config/prod.exs:
config :my_app, :create_intercom_user, true
Run Code Online (Sandbox Code Playgroud)
然后在您的代码中:
if Application.get_env(:my_app, :create_intercom_user) do
Task.start(fn -> ... end)
end
Run Code Online (Sandbox Code Playgroud)
要么:
在config/config.exs:
config :my_app, :mix_env, Mix.env
Run Code Online (Sandbox Code Playgroud)
并在您的代码中:
if Application.get_env(:my_app, :mix_env) == :prod do
Task.start(fn -> ... end)
end
Run Code Online (Sandbox Code Playgroud)
(替换:my_app为您应用的名称。)
| 归档时间: |
|
| 查看次数: |
356 次 |
| 最近记录: |