Elixir的新手,但到目前为止爱它:)
@H_404_1@我的很多混音任务都依赖于HTTPotion.
@H_404_1@我的mix.exs文件是这样声明的
def application do [ applications: [:logger,:cowboy,:plug,:httpotion,:poison],mod: {BiddingAgent,[]} ] end@H_404_1@所以HTTPotion.start会自动调用.但是,当我运行像mix campaign.list这样需要调用http请求的任务时,我必须手动调用HTTPotion.start. @H_404_1@确保为我的混音任务启动正确的流程的惯用方法是什么? @H_404_1@谢谢!
你是对的,当在启动脚本之外启动应用程序时,你需要手动启动依赖项.
@H_404_1@我更喜欢直接调用Application模块而不是每个依赖项.
@H_404_1@将以下代码添加到任务模块内的运行功能.
描述的做法正在Ecto中使用 @H_404_1@> https://github.com/elixir-lang/ecto/blob/master/lib/mix/ecto.ex#L73
> https://github.com/elixir-lang/ecto/blob/df13b1c64f8edd128cec1316336b20f3153eafa3/lib/mix/tasks/ecto.migrate.ex#L67 @H_404_1@模块包含在mix任务中,它提供了ensure_started方法.
原文链接:https://www.f2er.com/javaschema/281574.html{:ok,_started} = Application.ensure_all_started(:httpotion)@H_404_1@如果您有任何疑问,可以查看documentation @H_404_1@编辑:
描述的做法正在Ecto中使用 @H_404_1@> https://github.com/elixir-lang/ecto/blob/master/lib/mix/ecto.ex#L73
> https://github.com/elixir-lang/ecto/blob/df13b1c64f8edd128cec1316336b20f3153eafa3/lib/mix/tasks/ecto.migrate.ex#L67 @H_404_1@模块包含在mix任务中,它提供了ensure_started方法.