Elixir 为制作长生不老药凤凰而保持活动
在我的项目中,我正在做下面写的事情。但我只想在生产模式下运行它,而不是在开发模式下运行,为此,我尝试了Elixir 为制作长生不老药凤凰而保持活动,elixir,phoenix-framework,Elixir,Phoenix Framework,在我的项目中,我正在做下面写的事情。但我只想在生产模式下运行它,而不是在开发模式下运行,为此,我尝试了Mix.env,它通过给我:dev或:prod在本地运行,但在在线API上不起作用。它得到了一个错误,因为没有什么比env更好的了 我想让它只是为了生产某种模式匹配功能 Task.start(fn -> if user |> Intercom.get_user |> intercom_user? do Logger.info "User '#{user.
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)
任何帮助都将不胜感激 您必须在
config/*.exs
文件中为此设置配置,因为Mix
通常不包括在生产版本中。您可以只存储env值或一个更有意义的名称,如:create\u intercom\u user
在config/dev.exs
和config/test.exs
中:
config :my_app, :create_intercom_user, false
config :my_app, :create_intercom_user, true
config :my_app, :mix_env, Mix.env
在config/prod.exs
中:
config :my_app, :create_intercom_user, false
config :my_app, :create_intercom_user, true
config :my_app, :mix_env, Mix.env
然后在代码中:
if Application.get_env(:my_app, :create_intercom_user) do
Task.start(fn -> ... end)
end
if Application.get_env(:my_app, :mix_env) == :prod do
Task.start(fn -> ... end)
end
或:
在config/config.exs
中:
config :my_app, :create_intercom_user, false
config :my_app, :create_intercom_user, true
config :my_app, :mix_env, Mix.env
在您的代码中:
if Application.get_env(:my_app, :create_intercom_user) do
Task.start(fn -> ... end)
end
if Application.get_env(:my_app, :mix_env) == :prod do
Task.start(fn -> ... end)
end
(将:my_app
替换为您的应用程序名称。)