Elixir的新手,但到目前为止爱它:)
我的很多混音任务都依赖于HTTPotion.
我的mix.exs
文件是这样声明的
def application do
[
applications: [:logger, :cowboy, :plug, :httpotion, :poison],
mod: {BiddingAgent, []}
]
end
Run Code Online (Sandbox Code Playgroud)
所以HTTPotion.start会自动调用.但是,当我运行mix campaign.list
需要调用http请求的任务时,我必须手动调用HTTPotion.start
.
确保为我的混音任务启动正确的流程的惯用方法是什么?
谢谢!
jos*_*mrb 15
你是对的,当在启动脚本之外启动应用程序时,你需要手动启动依赖项.
我更喜欢直接调用Application
模块而不是每个依赖项.
将以下代码添加到run
任务模块内的函数中.
{:ok, _started} = Application.ensure_all_started(:httpotion)
Run Code Online (Sandbox Code Playgroud)
如果您有任何疑问,可以查看文档
编辑:描述的做法正在Ecto中使用
混合任务中包含一个模块,它提供了ensure_started方法.
归档时间: |
|
查看次数: |
2044 次 |
最近记录: |