启动混合任务流程依赖项

2024-05-01

Elixir 新手,但到目前为止很喜欢它:)

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

My mix.exs文件被声明为这样

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

所以 HTTPotion.start 会被自动调用。但是,当我运行类似的任务时mix campaign.list需要调用http请求,我必须手动调用HTTPotion.start.

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

Thanks!


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

我更喜欢打电话给Application模块而不是直接每个依赖项。

将以下代码添加到run在您的任务模块中运行。

{:ok, _started} = Application.ensure_all_started(:httpotion)

如果您有任何疑问,您可以查看文档 http://elixir-lang.org/docs/stable/elixir/Application.html#ensure_all_started/2

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

  • https://github.com/elixir-lang/ecto/blob/master/lib/mix/ecto.ex#L73 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 https://github.com/elixir-lang/ecto/blob/df13b1c64f8edd128cec1316336b20f3153eafa3/lib/mix/tasks/ecto.migrate.ex#L67

mix 任务中包含一个模块,它提供了 Ensure_started 方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

启动混合任务流程依赖项 的相关文章

  • elixir+hex - ranch_proxy_protocol ssl:ssl_accept 3 已弃用,出现十六进制错误

    enter code here我正在以下命令运行 mix ecto create mix ecto migrate 这给出了一个错误 gt Compiling ranch proxy protocol gt Compiling src ra
  • 使用 Ecto 的原始 SQL

    我对 Elixir 和 Phoenix Framework 的世界还很陌生 我正在尝试遵循 TheFireHoseProject 教程 但在使用 Ecto 查询原始 SQL 时遇到问题 该教程说这应该有效 defmodule Queries
  • mix 在代理后面不起作用

    我一直都在用mix至少就在两周前落后于代理 但是我昨天发现 mix 无法在代理后面工作 混合版本是1 1 1 mix local hex 运行 但混合 deps get 会出现错误 mix deps get Registry update
  • 基于结构类型更改的分块列表

    我有一个列表 我想根据从结构类型 B 到 A 的转换来分块 例如 我有以下内容 iex 1 gt defmodule A do defstruct module A iex 2 gt defmodule B do defstruct mod
  • 使用 HTTPoison 初始化模块属性

    我正在尝试像这样初始化模块属性 response HTTPoison get url ok response Poison decode response body attr response 我以前用一个文件做过这样的事情 externa
  • 如何使用 Geo 库创建有效的 Ecto 模型变更集?

    我正在尝试使用Geo https github com bryanjos geo通过 Phoenix 模型变更集存储 Geo Point 的库 我的参数是 coordinates 49 44 17 87 或者更喜欢的是 coordinate
  • Ecto 构建多个关联

    目前正在使用 Ecto Postgres 从事 Phoenix 项目 创建评论时 作为评论belongs to用户和文章 有没有一种方法可以构建多个关联来生成一个变更集 像这样的伪代码 comment changeset build ass
  • 套接字无法连接到端点

    var socket new Socket localhost 4000 socket connect Returns WebSocket connection to ws localhost 4000 ws failed Error du
  • Phoenix:订购查询集

    我 一个菜鸟 为了好玩而玩弄 Phoenix 框架并构建一个小型 Twitter 克隆 我一切正常 但是 我想按updated at字段 升序 正如您从 tweet controller 中看到的 我尝试过使用 order by 子句 但这
  • Elixir GenServer 并行handle_call

    Phoenix框架上有一个应用程序 需要 GenServer 它将检查一些值 这些值的验证从控制器开始 来自客户端的请求 GenServer 值检查 客户端接收响应 一旦handle call是同步的 那么当10个客户端同时调用10个han
  • 可以用宏获取评论吗?

    我试图解析一些代码并重新格式化它们 但似乎引用只会忽略注释 有什么办法可以实现这一点吗 我想我必须深入 erlang 方面 不 您无法在宏内获取代码注释 它们永远不会成为 AST 的一部分 并且仍然被丢弃在 Elixir 的标记器中
  • 仅针对使用通道而定制的 Phoenix 应用程序如何在多台机器上扩展?使用HAProxy?如何向所有节点广播消息?

    我将节点应用程序纯粹用于带有 Redis PubSub 的 socket io 通道 目前我将其分布在 3 台机器上 并由其中一台机器上的 nginx 负载平衡提供支持 我想用 Phoenix 应用程序替换这个节点应用程序 而且我对 erl
  • Ecto - 验证关联模型的存在

    如何验证 Ecto 中是否存在关联模型 schema foo do has many bar Bar timestamps end required fields w bar invalid 有办法这样做吗 并验证这些字段的最小 最大数量
  • 启动混合任务流程依赖项

    Elixir 新手 但到目前为止很喜欢它 我的很多混音任务都依赖于 HTTPotion My mix exs文件被声明为这样 def application do applications logger cowboy plug httpot
  • 如何完全禁用 Elixir/Phoenix 生成器和模型中的上下文?

    凤凰城有一个发电机 mix phx gen html Accounts User users name string age integer 我不想为我的模型使用上下文 也不想提供它的名称 如何禁用它 您仍然可以使用 1 2 及更早版本中的
  • Phoenix 中的 web/static 和 priv/static 有什么区别?

    我对长生不老药和凤凰是新手 现在我在凤凰城的静态资产方面遇到了麻烦 我想在我的页面中添加一个js文件 我在我的模板中添加以下代码 js test js gt gt 然后创建一个js文件web static js test js 但是 我收到
  • Elixir 用于列表、元组等的记录器

    我可以使用 Elixir 记录器来检查字符串 gt str string gt Logger info Here is a str info Here is a string 但是当我记录一个列表时 它看起来不太漂亮 gt list 1 2
  • Phoenix 编程:未定义函数 page_path/2

    我的网络应用程序遇到问题 出现以下编译错误 Compilation error on file web controllers auth ex CompileError web controllers auth ex 49 undefine
  • 使用 Elixir 生成首字母头像 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在开发 Elixir 并希望提供头像服务 如果用户没有头像 可以制作一个带有他们姓名首字母缩写的头像 如下所示 我真的不知道从哪里
  • Phoenix 框架 - 每个路由的页面标题

    在 Phoenix 框架中 有一种基于路由 路径设置页面标题的常用技术 或者这只是一个调用的问题assign page title fred 在我的路由函数内的正确位置 Update 我最终实现了 michalmuskala 解决方案的变体

随机推荐