Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
 Elixir_IT技术博客_编程技术问答 - 「Fatal编程技术网」

如何在Elixir中启动操作系统进程

在Elixir中启动操作系统进程的最佳方式是什么 我希望能够在启动时向它传递不同的参数, 捕获其PID,然后杀死它。您可以使用端口来实现这一点: defmodule Shell do def exec(exe, args) when is_list(args) do port = Port.open({:spawn_executable, exe}, [{:args, args}, :stream, :binary, :exit_status, :hide, :use_stdio,

使用列表时elixir的性能改进

如何提高性能,例如,mergesort。在mergesort的合并步骤中,大小为n/2的两个较小列表合并为大小为n的列表。因为这是递归发生的,所以调用下一个tiem merge来合并2个数组,这些列表的大小为n,而新列表的大小为2n。在Elixir中,列表是不可变的,我无法修改初始列表的值,即我尝试排序的列表。相反,它会在合并的每一步创建新列表。我该如何改进这一点?人们会使用ets吗?Elixir已经解决了很多这样的性能问题。以mergesort中的合并问题为例,我们有:list.merge,它

Elixir 从终端使用Phoenix/Exto打印记录计数

在Rails应用程序上,我们可以通过如下命令打印数据库表的记录计数: rails r "puts User.count" 据我所知,如果我们想在Phoenix/Exto环境中实现同样的功能,我们应该运行以下命令: mix run -e "IO.puts SampleApp.Repo.aggregate(SampleApp.User, :count, :id)" 这没关系,但对于日常使用来说太长了。还有更短的路吗?开箱即用,没有。 但是,您可以在SampleApp模块中定义一个函数,使其更短。

此Elixir表达式的正确语法是什么?

我被告知这段代码片段作者没有测试过 |>(fn l->[?[,枚举映射(l,&([inspect(limit::infinity),?\n]),?]]end.() 作为流水线命令序列的一部分,该命令使用库将数据从CSV文件转换为结构,并将结果输出为常规的长生不老药列表,以输入长生不老药源-即添加周围的括号,并用逗号分隔列表中的元素 这就是序列的意思: File.stream!('tmp.csv') \ |> DataMorph.structs_from_csv("open-registe

Elixir 未创建Docusign DateSigned选项卡

使用docusign API创建一个信封,其中包含签名字段和初始字段,这些字段转换为选项卡 我想为每个签名添加“date signed”选项卡,但dateSignedTab没有任何效果。我们使用的表单有多个datesigned字段,名称为:date\u signed\u 1docsigndatesigned 我没有发现任何有用的文档或日期签名选项卡的示例。任何帮助都将不胜感激 %{compositeTemplates: [%{document: %{documentBase64: "Base.e

Elixir 使用长生不老药和凤凰的背景流程

我有一个系统,可以创建一个问题并将这个问题插入数据库,我可以通过单击我设置的链接来完成。这是很简单的事情。创建控制器操作设置其链接,然后单击按钮启动该操作 这项措施目前有效。但是下一个阶段是让系统创建一个问题,而不需要用户界面的任何干预。所以,这就把我带到了一个有长生不老药/凤凰的新地方。我的新问题是:我需要在一天的x时间自动运行这个函数 问题: 在Elixir/Phoenix中实现后台任务最惯用的方式是什么?我对Genserver或Supervisors知之甚少,但我想我已经准备好开始学习这些

如何编写Elixir doctest来验证空映射集

我正在学习Elixir中的doctest,我正在尝试编写Elixir doctest来验证一个结构是否包含两个空映射集 defstruct [:coordinates, :hit_coordinates] @doc """ Creates a new Island structure ## Examples iex> IslandsEngine.Island.new() %IslandsEngine.Island { coordinates: #MapSet&

Elixir 强制Phoenix呈现JSON错误

当用户试图点击不存在的API路由时,Phoenix遇到问题。Phoenix似乎希望在默认情况下呈现“404.html”,这会导致调用一个catch-all呈现函数(返回一个映射),这会导致一个错误,因为Phoenix试图将JSON呈现为html ** (UndefinedFunctionError) function Phoenix.HTML.Safe.to_iodata/1 is undefined (module Phoenix.HTML.Safe is not available)

Elixir 在长生不老药中更好地使用Enum.reduce

我试图以这种方式在where=1=1之后创建一个查询的where子句 Enum.reduce(params, "WHERE 1=1 ", fn param, condition = _acc -> {name, value} = param cond do name == "camera_name" && value != "" -> condition <> "AND

Elixir 创建状态变化的惰性序列(流),例如斐波那契数?

问题:是否有可能创建一个Elixir流,它在内部保持某种状态,并随着每次调用而改变?代码看起来会是什么样子呢 我很高兴看到Elixir0.10.2除了正常的Enum模块外,还有Streams。虽然有关于如何使用Streams的文档,但几乎没有描述如何创建它们的文档或可全局搜索的文档。阅读流模块的源代码不是很有启发性。我也研究了它的答案,虽然很有趣,但它也没有涉及到状态的变化 考虑生成需要记住前两个值的斐波那契数。或者想想 首先,我在理解这是否可能时遇到的问题是: 记录的可枚举元素仅通过一些示例设

Elixir 列表与元组-使用什么以及何时使用?

我试图理解Elixir中列表和元组之间的区别。从《长生不老药指南》一节中,我了解到: 列表存储为链接项 更新列表很快(仅在预结束时) 获取列表项的速度很慢 获取列表信息(大小/长度)速度较慢 元组元素存储在一起 获取元组信息很快 获取元组元素很快 修改元组是昂贵的 好的,那很好,但是我仍然不确定当时使用什么。我看到大多数方法都返回元组,但其他地方都使用列表,许多方法接受列表作为输入,而不是元组。如上所述,元组不应该用于传递数据,因为从用户给定值的元组读取数据会很快吗 我还注意到元组不是可枚

Elixir Hackney无法向服务器发出请求

我正在使用Phoenix框架运行以下连接。它在过去起过作用,但不确定是什么导致了这起案件的发生。停止并重新启动iex似乎无法修复它。长生不老药1.0.5,凤凰城0.14.0,二郎OTP 18 iex(2)> "https://api.twitch.tv/kraken/videos/top" |> ...(2)> HTTPoison.get!() ** (exit) exited in: :gen_server.call(:hackney_manager, {:new_requ

Elixir 如何在Phoenix框架中验证存在性?

Ecto可以验证格式、包含性、唯一性等,但我看不出如何验证存在性?如果字段为空,是否有向字段添加错误的方法?如验证RoR中是否存在?我可以手动创建,这不是问题,但我想知道是否已经存在类似于validate\u presence\3之类的方法?只需在模型中使用必填字段注释器即可 @required_fields ~w(name email) 对于总共有4个字段和2个必填字段的客户模型,如下所示: defmodule HelloPhoenix.Customer do use HelloPhoe

Elixir 字符串/二进制参数结尾的模式匹配

我现在正在用长生不老药写一个小测试。我想使用模式匹配来评估文件是否为spec格式(以“\u spec.exs”结尾)。关于如何在字符串开头进行模式匹配,有很多教程,但不知何故,这些教程对字符串结尾不起作用: defp filter_spec(file <> "_spec.exs") do run_spec(file) end defp run_spec(file) do ... end 有什么解决办法吗?看看《长生不老药入门指南》中的这一点,这似乎是不可能的。有关章节指出

Elixir 什么';“这就是”的意思&引用&引用&引用&引用_&引用;,及"&引用;长生不老药中的语法

关于理解elixir中的以下语法,我需要帮助,?,和。 这些语法在长生不老药的功能中扮演什么角色?例如Repo.get 我不确定它们是函数名还是角色。虽然我知道是用来调用匿名函数的。和\uu用于任何或可变的?-故障时引发异常的函数的约定 ?-返回布尔值的函数的约定 。-用于忽略参数或模式匹配表达式的一部分 -如您所述,它用于调用匿名函数,但也用于访问模块函数,例如Mod.a(arg)首先和? 它们是命名约定,通常应用于函数名的末尾,不是任何特殊语法 -如果函数遇到错误,将引发异常 一个很好的例子

Elixir 凤凰/长生不老药背景工人

我需要在Phoenix中设置一个后台工作程序,并通过Elixir发送/接收从一个通道与它通信 在Phoenix dir结构中工作的模块应该放在哪里(libmaybe?) 如何从通道加载/引用模块 我认为这取决于这些模块的数量。如果只有一个,可以直接将其放入lib。如果有许多workers模块,我更愿意将它们放在lib/workers甚至workers中。在后一种情况下,您应该在elixirc_路径函数中列出workers文件夹mix.exs 没什么特别的。放置在elixirc_路径中提到的文件夹

Elixir 如何在并发环境中刷新访问令牌?

任务是通过服务对服务认证机制查询一个Google服务,该机制假设每60分钟获得一个新的访问令牌。因此,它需要主动刷新或在请求失败时刷新 最新的似乎是一种防御技术,不符合长生不老药的哲学。此外,无法确定请求是否因访问令牌过期或提供的凭据(电子邮件和密钥)通常无效而失败-它将是相同的文本和相同的401代码 也许有人可以就实施策略提供建议?这将是主机应用程序要使用的库,假设在令牌刷新期间(可能是90毫秒?)将创建新请求,通常情况下,最好等待新令牌,而不是使用即将过时的令牌。一般来说,在Elixir/E

Elixir 为什么我看到两个结果?

我正在看Sasa Juric的《长生不老药》,我发现了一些我觉得有点困惑的东西。我正在浏览他在140页左右给出的例子,我看到了: iex(2)> send(self, {:message, 1}) # Line 1 {:message, 1} iex(3)> receive_result = receive do ...(3)> {:message, x} -> x + 2 ...(3)> end 3 iex(4)> IO.inspect recei

Elixir 减少运行大型seed.exs的内存占用

我有一个很大的种子文件,我正试图在我的廉价服务器上运行。这是hs关税代码的完整列表,4000多个项目,带有大文本字段。种子文件为1.1mb 我将关税映射保存到关税变量,然后执行以下操作: tariffs |> Enum.each(fn(tariff)-> hs_tariff = struct(Myapp.Tariff, tariff) Myapp.Repo.insert!(hs_tariff) end) 在我的8gb ram dev计算机上插入所有行可以很好

Elixir 如何添加条件必填字段?

我有一个地址的EXTO模型(简化)模式: 我想将zip标记为所需,而不是可选,但前提是国家/地区在白名单中,但我无法找到一种干净的方法来编写验证。如何添加该约束?没有明确的函数要求在cast之外添加字段。您可以使用该函数并覆盖“:message”选项 validate_length(changeset, :zip, min: 1, message: "is required when country is US") 您也可以简单地定义多个强制转换: def changeset(model, p

Elixir (ArgumentError)运行mix local.hex时填充不正确

我不熟悉长生不老药。在本地文件夹中,我试图运行mix local.hex,但它抛出以下错误: ** (ArgumentError) incorrect padding (elixir) lib/base.ex:676: Base.do_decode64/2 (mix) lib/mix/local.ex:91: Mix.Local.find_matching_versions_from_signed_csv!/2 (mix) lib/mix/tasks/local.hex.

Elixir 菲尼克斯/长生不老药/埃克托.卡斯特罗:价值“;新的在“where”中,不能在MyApp.User中的查询:from u中转换为type:id,

我正在使用编程Phoenix,在我的应用程序中添加一个新的用户功能: 我得到以下错误: deps/ecto/lib/ecto/repo/queryable.ex:188: value `"new"` in `where` cannot be cast to type :id in query: from u in Microflow.User, where: u.id == ^"new" Error when casting value to `Microflow.User.id` dep

Elixir 在EXTO中同时在两列上创建唯一约束

如何在EXTO中的两列上创建一个唯一的索引,这将与以下内容相对应: CREATE TABLE someTable ( col1 int NOT NULL, col2 int NOT NULL, primary key (col1, col2) ) ?您可以使用 create unique_index(:some_table, [:col1, :col2]) 我想如果您想拥有复合键,您需要使用手动运行SQL。不过,我不确定复合键与EXTO的配合效果如何,我通常只使用每个

Elixir 如果用户被删除,请确保属于该用户的帖子被删除

我有一个phoenix应用程序,其中帖子属于用户 当我试图删除一个有帖子的用户时,会出现以下错误: Ecto.ConstraintError at DELETE /users/2 constraint error when attempting to delete model: * foreign_key: posts_user_id_fkey 我假设这个错误意味着它不会删除该用户,因为存在属于该用户的现有帖子 如果/当用户被删除时,如何删除用户帖子?我已经做了更多的搜索,我想我找到

Elixir 凤凰城-**(ArgumentError)无法识别的时间#<;日期时间(2021-12-31T23:59:00Z)>;

我在我的项目中使用Timex.DateTime处理datetimes&到目前为止,它完成了这项工作 但是,我尝试为Phoenix.HTML.Form创建一个自定义生成器,用于编辑datetimepublish\u date以下内容: %> 时间::: 日期:// 我从输出中了解到,我使用不同的类型,但我不知道如何转换它们,我仍在学习Phoenix,因此,如果您有更好的方法解决此问题,也会很有用 堆栈跟踪: Request: HEAD /news/12/edit ** (

Elixir在Enum.reverse方法上返回笑脸

我正在查看文档,以下是我的代码: defmodule Math do def reverse(list), do: Enum.reverse(list) end 我运行它: IO.write(数学反转([1,2,3,4,5,6,7,8])) 但是,一些奇怪的事情正在发生。我收到一声“嘟嘟”的声音,还有 我对Elixir相当陌生,但我不确定从哪里开始调试过程。我哪里出错了?谢谢 此问题与Enum.reverse/1功能没有直接关系。只需将一个整数列表传递给IO.write/1,就可以复制完

Elixir 在nginx上游使用phoenix记录真实IP地址

我有一个上游的phoenix应用程序,如下所示: upstream my_app { server localhost:3001; } server { root /var/www/my_app/priv/static; listen 80; location / { proxy_pass http://my_app; } } 我想跟踪真实的IP地址,但我不知道如何通过标准的phoenixconn.remote\u IP实现,因为它总

Elixir/PhoenixFramework-如何让test.secret.exs自动加载到测试环境中?

似乎test.secret.exs不会在test环境中自动加载 Application.get_env(:my_app,:my_settings)返回nil,即使mytest.secret.exs包含以下内容: use Mix.Config config :my_app, :my_settings, setting1: "blah", setting2: "bleh" 我正在运行Elixir 1.4.0。prod.secret.exs由prod.exs显式加载,在

Elixir ExUnit测试与自定义依赖环境

我有一个项目a,它也依赖于我创建的依赖项B 当我想用一个简单的混合测试在A上启动测试时,它将获取依赖项B,编译它并在:prod环境中启动它 这意味着A在:test环境中,B在:prod环境中 我想让测试在:dev环境(或除:prod以外的任何其他环境)中启动依赖项,有没有办法做到这一点?也许您的混合环境是产品,而混合测试不会将其更改为测试。 请明确尝试: MIX_ENV=test mix test and for dev MIX_ENV=dev mix test 实际上,问题不在这里,我没

Elixir Phoenix.HTML.Form并格式化文本输入的Timex.DateTime

我想将Timex DateTime字段的格式更改为单个文本输入。当我让Phoenix负责格式化时,它看起来是这样的: <%= form_for @changeset, @action, fn f -> %> <%= if @changeset.action do %> <div class="alert alert-danger"> <p>Oops, something went wrong! Please check

Elixir-如何从命令行添加包?

我知道在Elixir中,您可以通过进入mix.exs并手动键入来添加十六进制软件包。我想知道是否有一个类似于Node js的npm install name of package-s命令的命令。换句话说,是否有一种只使用命令行添加单个包的方法。否,没有从命令行添加包的功能。然而,你不是第一个有这个想法的人。请参见《灵丹妙药》一书。为什么会被否决?请说明原因或提出改进建议,而不仅仅是否决问题。

Elixir 外太空:两个独特的领域

我在同一个表中的字段上创建了两个唯一的索引,并希望使用unique_constraint/3对它们进行验证,但是,前端上的错误消息仅显示其中一个字段,如果它们不唯一,则不会同时显示这两个字段。如果两个字段都不唯一,如何显示这两个错误?您可以使用查找所有唯一的验证错误并向用户报告唯一_约束还必须用于在插入新记录之前处理数据更改的潜在竞争条件 changeset |> unsafe_validate_unique([:email], MyApp.Repo, message: "email is

Elixir中的小写或大写@spec

在@spec中,有时我会看到这样的定义 @spec a_函数(整数、映射、列表):{:好的,映射} 有时@spec a_函数(整数、映射、列表):{:好的,映射} 哪一个是正确的方法? 我找不到任何具体的答案 谢谢即使你把垃圾放在那里,一切都会被编译好的@spec仅由透析器使用,编译器在定义术语(例如原子)时安全地忽略它们,并且@spec的算术符合定义的函数之一。这将起作用: @spec call(Foo, Bar, Baz, Boo) :: BLAH def call(p1, p2, p3,

升级到elixir 1.6.1时出现Mix.Shell.cmd错误

我的代码在elixir1.5.2上运行良好,然后我升级到elixir1.6.1。它给了我Mix.Shell.cmd/2未定义或私有错误。这是密码 def run(args) do file = List.first(args) || "priv/static/apiv1docs.json" Mix.Shell.cmd("rm -rf " <> file, &IO.puts(&1)) IO.puts("Removed " <&g

Elixir 将EXTO many_修改为_many模式

有这个模式 many_to_many :customers, User, join_through: Customer, on_replace: :delete 我想添加一个on_delete子句: on_delete: :delete_all 所以我用 many_to_many :customers, User, join_through: Customer, on_replace: :delete, on_delete: :delete_all 创建了一个迁移,但由于它是多

Elixir:以编程方式生成列表名

在Elixir中,我想创建一个数量可变的列表,这些列表的开头相同。我想以编程的方式命名,例如 列表1=1,2,3 列表2=1,2,3等 我正在尝试的编码方法如下。这可以用长生不老药来做,还是用verboten来做 n = IO.gets("Enter number of lists: ") |> String.trim_trailing n = String.to_integer(n) generatelistnames(n,1) def generatelistnames(0,0),

Elixir 进入深度嵌套的映射和列表

我有一张这样的地图: %{ "conferences" => [ %{ "alias" => "EASTERN", "divisions" => [ %{ "alias" => "SOUTHEAST", "id" => "54dc7348-c1d2-40d8-88b3-c4c0138e085d", "name" => "Southeast",

Elixir 混合任务生成进程不起任何作用

我创建了一个混合任务,它生成了一个进程。 它使用流,从流中读取数据并写入使用者中定义的文件 在一天结束时,它只会产生一些进程 如果我通过iex运行它 但是如果我以混合任务的形式从命令行启动它,那么什么也不会发生,您如何让流程保持打开状态 use Flow def run([stream]) do specs = [{{ProdCon,[]},[]}] consumer = [{{Consumer,[]},[]}] stream |> Flow.f

Elixir 直接从phoenix路由器重定向

我正在尝试从我的router.ex重定向 我有点像: import Phoenix.Controller, only: [redirect: 2] scope("/", MyApp) do forward "/test", :redirect, to: "/new-url" end 我当前遇到的错误是: == Compilation error in file lib/myapp_web/router.ex == ** (ArgumentError) expected an Elixir

替换elixir中数组中的项

假设我有一张这样的地图 组织有一个属性数组,属性有一个“访问令牌”数组 现在我有了这个映射,对于一个特定的访问令牌,这个的id与第二个属性的一个访问令牌匹配: access_token = %{id: "at-3", name: "new name"} 迭代以使用新的访问令牌更新organization%{}map的最佳方式是什么?我要做的是找到基于id匹配的访问令牌,并将其替换为具有新名称的新令牌 我有一些大概的方法可以做到这一点,但在Elixir中,什么是干净的方法呢。您不需要迭代,只需使

Elixir 长生不老药/凤凰-获取当前时间(Timex库)

我使用Timex库获取当前时间。例如: iex(9)> time = Timex.now ~U[2019-11-29 14:05:39.759000Z] 当我记录下这一分钟时,我得到了以下信息 iex(10)> time.minute 5 如果当前分钟数达到10,那么我得到一个没有前导零的值,与小时和秒的值相同。 我可以得到结果值的长度,如果它小于2,则在开始处添加一个零,但我认为这不是最佳解决方案 time.minute |>Integer.to_string |>string

Elixir 如何基于特定键将两个列表与地图合并

我有两张由地图组成的列表 products = [ %{id: 7, name: "A", count: 1}, %{id: 8, name: "B", count: 1}, %{id: 9, name: "C", count: 0} ] price= [ %{price: "$14.95", p_id: 8}, %{price: "$10.00", p_id: 7}, %{price: "$29.95", p_id: 10}, %{price: "$1.00",

Elixir 当web服务器应用程序位于伞形应用程序中时,通过早午餐导入Phoenix Socket、Phoenix HTML JS模块

当Phoenix web服务器不在伞形应用程序中时,Brunch会在“deps/Phoenix/web/static/js/socket”和“deps/Phoenix\u html/web/static/js/Phoenix\u html”中找到模块,因为Phoenix依赖项会安装到相对于Brunch配置文件的位置 在伞式应用程序中,依赖项将安装在伞式应用程序本身中,而不是web服务器应用程序中。因此,它们位于“../../deps/phoenix/web/static/js/” 我尝试将“./

Elixir 无法通过带有“的自定义阶段传递流”;通过“U规格/3”的流量;

我试图在流动管道中加入一个GenStage。但是,这会导致引发异常。如果我理解正确,Flow.through_specs/3将产生许多阶段,并相应地对传入项目进行分区。我错过什么了吗?我使用流量v0.14.2 例外情况: {:down, {%ArgumentError{message: "the :partition option is required when subscribing to a producer with partition dispatcher"}, [{GenStage.

上一页 1 2 ...  60   61   62   63    64   65   66  ... 下一页 最后一页 共 125 页