如果我从 IEx 加载,如何禁用某些配置?

问题描述 投票:0回答:2

我有大量的

quantum
工作,它们会在我的
iex
内产生日志垃圾。从我的
phoenix
应用程序:

# config/dev.exs
config :quantum, MyApp,
  cron: [
    # Tons of jobs here
  ]

所以,我希望这部分仅包含在来自 phoenix.server 的配置中,而不包含来自 IEx 的配置。我怎么能这么做呢?

elixir phoenix-framework elixir-mix
2个回答
3
投票

您可以使用

iex
检查
IEx.started?/0
是否正在运行。如果您将其放入
unless
并将
config
调用包装在其中,则仅当
iex
未运行时才会添加配置:

# config/dev.exs
unless IEx.started? do
  config :quantum, MyApp,
    cron: [
      # Tons of jobs here
    ]
end

0
投票

我正在使用 Elixir 1.15。就我而言,

IEx.started?
false
runtime.exs
文件中返回
prod.exs
。我的假设是这是因为这些文件是在
IEx.started?
依赖的任何状态更新之前执行的。

就我而言,在产品上禁用 IEx 中的量子的方法是创建

.iex.exs
文件并删除调度程序进程:

Supervisor.terminate_child(App.Supervisor, App.Scheduler)
Supervisor.delete_child(App.Supervisor, App.Scheduler)
© www.soinside.com 2019 - 2024. All rights reserved.