启动混合任务流程依赖项

时间:2016-02-29 18:00:21

标签: elixir

Elixir的新手,但到目前为止爱它:)

我的很多混音任务都依赖于HTTPotion。

我的mix.exs文件被声明为

  def application do
    [
      applications: [:logger, :cowboy, :plug, :httpotion, :poison],
      mod: {BiddingAgent, []}
    ]
  end

因此自动调用HTTPotion.start。但是,当我运行需要调用http请求的mix campaign.list之类的任务时,我必须手动调用HTTPotion.start

确保为我的混音任务启动正确的流程的惯用方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:14)

你是对的,当你在启动脚本之外启动应用程序时,你需要手动启动依赖项。

我更喜欢直接调用status = 1模块而不是每个依赖项。

将以下代码添加到任务模块中的Application函数。

run

如果您有任何疑问,可以查看documentation

编辑: 描述的做法正在Ecto中使用

模块包含在mix任务中,它提供了ensure_started方法。