gpt4 book ai didi

elixir - 仅为生产而保留事件 Elixir Phoenix

转载 作者:行者123 更新时间:2023-12-02 06:32:54 25 4
gpt4 key购买 nike

我正在我的项目中按照下面所写的进行操作。但我只想在生产模式下运行它,而不是在开发模式下运行它,为此,我尝试使用 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_intercom_user

config/dev.exsconfig/test.exs中:

config :my_app, :create_intercom_user, false

config/prod.exs中:

config :my_app, :create_intercom_user, true

然后在您的代码中:

if Application.get_env(:my_app, :create_intercom_user) do
Task.start(fn -> ... end)
end

或者:

config/config.exs中:

config :my_app, :mix_env, Mix.env

并在您的代码中:

if Application.get_env(:my_app, :mix_env) == :prod do
Task.start(fn -> ... end)
end

(将 :my_app 替换为您的应用名称。)

关于elixir - 仅为生产而保留事件 Elixir Phoenix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38867732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com