Elixir 如何杀死长生不老药守护进程

我启动长生不老药守护进程 elixir --detached -S mix run 但我找不到杀死它的方法 (我的服务器是CentOS。)使用ps-eaf | grep elixir查找进程ID,并使用kill杀死进程,因为@Werner在注释中为我输入了它的工作原理: sudo定影器-k 4001/tcp 将4001更改为您的端口如果它没有死亡,则执行kill-9此操作:sudo fuser-k 4001/tcp如果它在端口4001上

Elixir,测试主管重新启动策略

我正在编写一个带有主管树的OTP应用程序 主主管管理两个流程,一个是工作人员QueueAddress,另一个是主管QueueManager,策略是“一对一” QueueManager使用策略simple\u one\u for\u one管理一组小队列,每次启动新队列时,其基本信息都会保存到QueueAddress中 如果队列被终止,它将正确地重新启动 现在我想测试如果主管队列管理器被杀死会发生什么 但是,如果只发送一条消息Process.exit(QueueManager,:normal),或

Elixir 服务器启动时读取文件并初始化Phoenix中的变量

我有一个很大的文件,里面有我想在服务器启动时读入列表的单词。该列表应在控制器中可用 我想应该在lib/Appname.ex中读取文件 包含单词的文本文件应该放在哪里?如果我把它放在web/static/assets中,我如何获得到该位置的相对路径 将列表读入Appname.ex(in/lib)中的模块属性是否可行?还是有更好的方法 我想出了一个办法。关键是把一堆单词读入内存,并能够随机选择一个单词。我所做的: 将包含单词的文件放在/web/static/assets中 初始化了/lib/Ap

Elixir phoenix部署与EXRM cowboy服务器

我的新项目(我在默认的mixnewproj主页上添加了“helloworld”)在dev中运行良好 我根据phoenix站点部分为prod配置了它,之后使用这个命令 MIX_ENV=prod iex -S mix phoenix.server 它很好用 在那之后,我创建了一个又一个的混合发布——在这个过程中一切都很顺利 在此之后,我尝试启动此版本,但它启动了,但不起作用: $> rel/hello/bin/hello console Using /home/bar/work/phoen

Elixir 如何在iex中清除屏幕?

在irb和许多其他交互式shell中,我可以按Ctrl+L键清除屏幕 Elixir的iex的等价物是什么?你在Mac上吗?您可以尝试Command+K。这通常对我有效。正如JoséValim所说,您可以在iex内部调用clear iex> h clear/0 * def clear() Clear the console screen. 请注意,这是特定于终端的,而不是iex.Perfect的一部分。另一个注意事项:Elixir v0.10.1及更高版本支持ie

Elixir 在iex中的运算符上使用h helper

长生不老药“入门”教程告诉我: 例如,键入h is_integer/1将打印文档 对于is_integer/1函数。它还与运营商和其他公司合作 构造(尝试h==/2) 但是,如果我尝试h==/2,我得到的只是: ** (SyntaxError) iex:38: syntax error before: '/' 是否有更新更好的方式访问操作员帮助?这应该适用于最新的Elixir版本(我相信至少从v0.13.0开始)。您也可以在早期版本中使用h内核。==/2。您使用的是什么长生不老药版本?还可以尝

Elixir Phoenix服务器上的MIX_ENV=prod在端口为80的情况下启动时崩溃

我在mix和mix phoenix.server的mix_ENV=prod中遇到一些问题,启动时出现故障。在Linode的Ubuntu14.04上运行除Erlang(我想是17.x,17.3)之外的所有最新版本(Elixir1.0.5,Phoenix 0.14.0) $ MIX_ENV=prod PORT=80 mix phoenix.server {"Kernel pid terminated",application_controller,"{application_start_failur

Elixir “联接”中的Phoenix和Exto字段x在查询中的模型源中不存在

副食品, 我正在努力完成我的项目,我遇到了奇怪的问题。我尝试使用以下方案在PostgreSQL中连接表: defmodule Hangman.MasterCat do use Hangman.Web, :model schema "mastercats" do field :name, :string has_many :categories, Hangman.Category end ... end 第二点: defmodule Hangman.Cat

Elixir Phoenix:根据路线显示/隐藏Html元素

如果我们不在主页上,我想显示菜单图标。 我知道我需要用这样的东西: <div class="header"> <%= if page_path(@conn) === "/" do %> # Do nothing <% else %> <%= render Myproject.SharedView, "menuButton.html" %> <% end %> </div> #无所事

Elixir 资本化油田的外部模型

使用Ecto访问资本化油田的最佳方式是什么 我必须处理一个相当混乱的模式。有些柱子是大写的 我建立了以下模型: defmodule SourcesApi.SourceStatus do use SourcesApi.Web, :model # schema "source_statuses" do schema "source_statuses" do field :Hours_UnderOver, :integer field :trafficlight, :st

Elixir 为什么文件读取会因STDIO或file.open的不同而不同? 问题:

根据我是从:stdio还是打开文件,读取文件的行为似乎有所不同。为什么?我希望能够从STDIN或打开文件(file.open)读取二进制文件,并使用相同的代码提取字节 简言之: 为什么我在下面概述的行为在stdio和stdio之间有所不同 档案 我怎样才能实现我的目标 测试用例 作为一个简单的测试用例,我有一个包含三个字节的二进制文件: 06 8C 7D 我期望的结果是,从任何一个源读取此文件都会产生以下形式的二进制文件: <<6, 140, 125>> 然而

Elixir phoenix注销链接不起作用

我的应用程序中有下面的注销链接,但当我点击它时,它没有任何作用 上面代码生成的html元素是 有没有人看到这里有什么明显的错误,注销链接在点击时不会做任何事情 brunch-config.js javascripts:{ joinTo:{ “js/app.js”:/^(web\/static\/js)/, “js/jquery ujs.js.js”:[“web/static/vendor/js/jquery ujs.js.js”], “js/jquery.js”:[“web/stat

Elixir 如何在Ecto 2.0中通过JSON属性在Repo.preload中执行自定义选择查询?

我通过标签发布了分类和许多标签,标签和分类包含hstorename字段,其中包含关键字中的翻译 如何通过纯EXTO查询预加载相关的post.tags并选择JSONtag.name,例如使用“pl”键?在本例中,我希望将locale键“pl”作为param传递,但我不知道如何插值它,没有任何效果 defmodule Myapp.Tag do use Myapp.Web, :model schema "tags" do field :name, :map has_many

Elixir 调用具有相同名称的多个定义函数时,函数是如何排序的

嗨,伙计们,我只是在关注一些精彩的视频,这是我第一个基于函数的编程语言,但我真的很喜欢它 我目前正在学习列表,我们制作了一个自定义长度函数,如下所示: defmodule MyList do def length(list) do length(list, 0) end defp length([], count) do count end defp length([_|t], count) do len

Elixir Pry无法执行私有方法?

elixir的pry可以从模块内运行私有方法吗?例如: defmodule Test do require IEx def foo do IEx.pry end defp bar do end end 此时,对bar的调用不起作用。我对elixir很陌生,是我做错了什么,还是这不可能的原因?这是预期的行为,因为IEx.pry允许您访问调用它的函数的局部变量,但它不会将您置于被撬动的模块的范围内 从IEx.pry文档中: 当进程被撬动时,所有代码都在IEx内部运行

Elixir 为什么我没有上膛?

我有团队,每个团队都有用户,因此有一个连接表将用户链接到团队,因为它是多对多关系,下面是我的模型: defmodule App.Team do use App.Web, :model schema "teams" do field :owner_id, :integer has_many :team_users, {"team_user", App.TeamUser} end end defmodule App.User do use App.Web, :mo

Elixir 如何在Phoenix测试中创建会话?

我们尝试了多种方法,所有这些方法都产生了不同的错误,幸运的是我现在不记得了。直到最近我们需要一个真正的会话时,我们才能够通过和朋友使用旁路 这就是我根据插件测试得出的结论: 从这里复制粘贴Plug.ProcessStore的位置 有没有更方便/直接的方法 我尝试让集成测试模拟API的真正消费者。真正的API使用者没有访问原始会话的权限,因此您的测试也不应该访问原始会话 如果您有一个端点用于设置具有API密钥的会话,则类似的操作可能会起作用: defmodule MyIntegrationTest

Elixir 基于机会的随机数生成

欢迎来到赌场;) 我有一个“可能赢”的号码,例如33.3 赢的机会=33%,因此~在这种情况下,每第三卷应该赢一次 另一个例子:1号应该有1/100的机会获胜 如何使用elixir实现它,如何创建正确的rand func来实现它?创建包含100个元素的列表。 从这个列表中随机抽取1个元素 list = [1,2,3,4,5,6,7, ... , 100] Enum.take_random(list, 1) 或 或 33%-如果随机元素小于34,则获胜 1/100-如果随机元素为1,则获胜 等等

Elixir 如何检查协议是否已实现?

我想知道是否有任何方法可以询问Elixir这个对象是否实现了该协议,比如obj |>implements(Enumerable) 基本上,我必须区分结构和地图。我目前的解决方案有点难看: try obj |> Enum.each ... rescue e in Protocol.UndefinedError -> obj |> Maps.keys ... end 上述方法可行,但我更喜欢使用模式匹配,如: cond do obj |> is_impleme

Elixir 记录文本流

我有一个长生不老药应用程序,我使用它生成一个外部进程。生成的进程的STDOUT作为文本流作为proc.out(以#Function的形式)提供给我 我可以使用IO.stream/2逐行打印流的内容,但我明确希望使用Logger.info来完成。这就是它目前的样子: proc = Porcelain.spawn("node", ["/path/to/node/server.js"], [out: :stream]) stream = proc.out Enum.into(stream, IO.st

Elixir:从嵌套列表中提取元素

我有以下JSON文件,其中包含一些混合数据 例如,我想从Facebook的社交链接链接中提取 [ [ "social_links", [ { "image":"http://example.com/icons/facebook.svg", "link":"https://www.facebook.com/Example", "alt":"Facebook" }, { "imag

Elixir中的输入验证

我正在努力想出一个干净的方法来用Elixir进行输入验证 在OOP语言中,我会这样做: def my_func(a, b): if !validate_a(a): raise ArgumentError if !validate_b(b): raise ArgumentError return "something" 我在长生不老药中能想到的最好的方法是: def my_func(a, b) do cond do not valid_a?(a) ->

Elixir ExAws S3-获取上载文件的URL

Elixir library S3模块有一个put\u object方法,允许您执行文件上传 %{path: filepath, filename: filename} = %Plug.Upload{...} {:ok, contents} = File.read(filepath) time = DateTime.utc_now() |> DateTime.to_unix path = "#{Mix.env}/#{time}/#{filename}" @bucket |> ExA

Elixir 未为[token:“12345”实现协议Phoenix.Param

我在router.ex中有这个: get "/my_url/my_url2/:token", MySuperController, :my_action 当我称之为: <%= link("something", to: my_super_url(@conn, :my_action, token: "12345")) %> 如何修复它?您需要将URL模式中的变量作为直接参数传递,而不是传递到关键字列表中: <%= link("something", to: my_su

Elixir 凤凰:控制器测试还是视图测试?

我有一个控制器: defmodule ParrotApi.MeetupController do use ParrotApi.Web, :controller alias ParrotApi.Meetup def index(conn, _params) do one_hour_ago = Timex.now |> Timex.shift(hours: -1) |> Timex.to_u

Elixir 只有我重定向用户才能访问的页面,不能直接访问

我想创建一个页面,当我将用户从某个页面重定向到该页面时,该页面才可访问,而不能直接访问。也就是说,如果用户手动输入其url,他应该被重定向到错误页面或类似的页面 有没有一个简单的方法来实现这一点?也就是说,检查用户是否已从某个页面重定向到该页面。我可以考虑在会话中创建一个标志,但我认为必须有一种更惯用的方法。是一个类似问题的链接,该问题涉及检查用户刚刚查看的上一页。正如该线程中提到的,出于安全目的,您无法直接访问用户所在的上一页。除此之外,使用document.referer之类的工具仅在用户启

Elixir 为什么在这个主管和工作人员设置中调用start link时会出现ProtocolUndefined错误?

我在OTP应用程序中有以下简单的1级深度主管/工人设置 如果我启动“iex-SMIX”并执行MyDemo.Supervisor.start\u链接({MyDemo.Worker,:start\u link,[]),我会得到以下错误输出 1) 为什么会这样?看起来我在遵循正确的函数签名 代码 错误输出 **(退出#PID)引发异常: **(Protocol.UndefinedError)未为{MyDemo.Worker,{MyDemo.Worker,:start_link,[]},:permane

Elixir 在EXTO中更新数组

我有以下型号: schema "users" do field :email, :string field :subscriptions, {:array, :string} timestamps() end def changeset(struct, params \\ %{}) do struct |> cast(params, [:email,:subscriptions])

Elixir 映射到具有求和值的映射的列表

我有这个: a1 = [%{id: 1, val: 12}, %{id: 3, val: 7}, %{id: 1, val: 5}, %{id: 2, val: 3}, %{id: 2, val: 5}], %{id: 1, val: 3}] 我怎么能得到这个 %{ 1 => 20, 2 => 8, 3 => 7 } 即,按“id”分组的每个项目的“val”之和 我应该先按“id”对它们进行分组吗 然后对每个项目进行map和reduce?还是有更

Elixir 修复case语句中不安全的变量赋值

因此,我知道在case语句中分配变量是不对的,但我不知道如何重构该变量,以使用户重定向并正确分配conn: case Repo.insert(changeset) do {:ok,user} -> conn = put_session(conn, :user, user) redirect conn, to: "/" {:error, changeset} -> render(conn,"sign_up.html", changeset:

Elixir 没有数据库的Phoenix Repo生成的日志太多

我有一个Phoenix存储库,其他工程师在创建新应用程序时可以克隆它 我在prod.exs config :foo, Foo.Repo, adapter: Ecto.Adapters.Postgres, url: {:system, "DATABASE_URL"}, pool_size: 1 工程师通常在建立数据库之前将Phoenix服务器部署到生产环境中。工程师将在几天内建立数据库,但同时我的问题是,这会生成大量日志消息,我的日志系统无法处理这些消息 这是日志消息 15:48:2

Elixir应用程序测试配置

我有一个phoenix web应用程序,它使用redis进行数据存储。“我的配置”文件夹包含以下文件: config.exs test.exs 当我使用 mix test test/my_test.ex 使用redis的生产实例而不是测试实例 我可以通过跑步来让它工作 REDIS_URL="redis://redis:6379/1" mix test test/my_test.exs 但是我如何强制它自动使用测试配置呢 我使用混合测试/my_test.exs从控制台运行测试 如评论中所述,您

如何从Elixir创建Erlang属性列表

我试图用Elixir编写调用Erlang代码的测试,如下所示: foo([{property_one = P1, property_two = P2}|_] = Rows) when P1 =/= P2 -> erlang:display("function head one"), foo(Rows) -> erlang:display("function head two"), Rows. 我认为Elixir关键字列表是传递给此函数的正确数据类型,但我似乎无法正确构造它。这是我

Elixir 长生不老药凤凰-预载与自我

我的评论模型Phoenix 1.2中有以下内容: schema "comments" do belongs_to :parent, Test.Comment belongs_to :user, Test.User belongs_to :post, Test.Post has_many :children, Test.Comment, foreign_key: :parent_id end 在迁移过程中,我添加了: create table(:comments) do

Elixir exto.Query.CompileError p.league().id()不是有效的查询表达式

我试图写一个看起来很简单的异位查询,但我遇到了一个我不完全理解的错误 基本上,我在尝试匹配两个ID。以下是我目前的尝试: 查询 错误 我有一个属于联盟的PredictionScore,然后我有一个函数在单独的联盟中传递。我的查询正在尝试将预测分数联赛id与传入的联赛id进行匹配 希望这是足够的信息。。。如果您需要查看更多信息,请告诉我,我很乐意更新。您需要明确执行连接: from p in prediction_scores, join: l in assoc(p, :league),

Elixir 如何在现有表中添加字段

所以我是凤凰城的新手。我在phoenix项目中创建了一个简单的api,问题是我想在我的todo.ex 我想在我的todo.ex中添加一个author字段 来自 defmodule TodoApi.Todo do 使用TodoApi.Web,:model 模式“todos”do 字段:描述,:字符串 时间戳() 结束 def变更集(结构,参数\\%{})do 结构 |>强制转换(参数,[:说明]) |>验证\u必需([:说明]) 结束 结束 至 defmodule TodoApi.Todo do

Elixir Arc.EXTO.changeset的字体规格

我正在复制Arc.exto变更集示例 我不确定类型规格,我正在尝试这些,但似乎对透析器不起作用,它在|>cast_附件(params,[:avatar]) cast\u attachments是一个宏,因此我不确定如何为宏定义类型规范,因为在它的源代码中没有定义任何规范错误是由检查变更集或\u数据类型的case语句引起的。由于它是一个宏,当dialyzer在编译后检查它时,changeset_或_data已在调用模块中定义,因此dialyzer知道它是什么类型,因此无法访问其中一个case语句子

Elixir 长生不老药:总和2+位数

我正在学习Elixir函数式编程,并遇到了以下练习: 给您一个两位数的整数n。返回其数字之和 我提出的解决方案看起来有点毛茸茸的。 我想知道是否有人能给Elixir std lib函数/模块提供一些建议,并提供更好的解决方案。 我知道我可以选择n%10+Math.floorn/10js,但我想知道使用Elixir函数的解决方案是否与我的想法大致相同: def addTwoDigits(n) do n |> Integer.to_string |> String.sp

Elixir 使用HTTPoison初始化模块属性

我试图像这样初始化一个模块属性 response = HTTPoison.get! url {:ok, response} = Poison.decode(response.body) @attr response 我以前用过这样的文件: @external_resource file = Path.join([__DIR__, "file.txt"]) Module.register_attribute __MODULE__, :attr, accumulate: tru

如何让elixir编译器在运行phoenix服务器时显示警告?

通过mix在iex会话中运行phoenix服务器,如: iex -S mix phx.server 有时会给出一个警告列表,如: Compiling 1 file (.ex) warning: variable "user" is unused lib/app_web/controllers/user_controller.ex:37 但似乎只有在服务器第一次运行时,我想在运行之后,它会被缓存,因此不会显示。我以后如何查看这些警告以修复它们?谢谢 一个简单的方法,在iex-S mix p

Elixir映射集vs Enum.member?

我只需要保留唯一的值,我不知道应该使用哪种数据结构。稍后我将只阅读整个数据结构 一种方法是使用只包含唯一元素的MapSet 第二种方法是每次使用Enum.member?检查项目是否已经存在,但我可以通过MapSet轻松保证这一点 我不确定在这种情况下使用哪种方法更好。哪个更有效,哪个更实用?如果您将数据保存在地图集中,那么Enum.member?实际上会在下面调用MapSet.member?,因此您将拥有MapSet的所有优点。您可以看到相关的协议实现。我认为您混淆了数据结构和。MapSet

使用Elixir插值贴图关键点

我有一个可枚举的日期范围,我试图为q中不存在的每个日期添加date=>0 使用for循环将很容易,但这不是一个选项。我尝试了各种Enum.map函数,我很确定这不是我想要的。我想我想使用reduce,但我不确定 我该如何处理这个问题 谢谢 使用: 性能较差的版本(它在每次迭代中都会查找地图)具有理解能力: Enum.reduce(r, q, &Map.put_new(&2, &1, 0)) 对于日期使用: 性能较差的版本(它在每次迭代中都会查找地图)具有理解能力:

Elixir 伞式应用的好处是什么?

我正在考虑用长生不老药做一个项目。因此,我正在研究伞形应用程序,但我看不到使用它们的任何好处 是否有与构建速度、代码清晰性或其他方面相关的好处?使用伞式结构的一个优点是,应用程序被构造为独立的应用程序。这有助于在应用程序之间提供更清晰的边界,并分离应用程序关注点。例如,伞式应用程序中的一个应用程序应该只调用另一个伞式应用程序的公共API。然而,这并不是强制的,私有API仍然可以被调用 伞中的各个应用程序都有自己的配置文件、测试和单独的mix.exs文件,这些文件可以作为一个大型应用程序进行编译、

Elixir 什么';这是错误的:如果是真的,数字是1吗

为什么第二个表单被解析为2个参数被传递给is_number is_number if true, do: 1 true is_number if true do 1 end ** (CompileError) iex:42: undefined function is_number/2 我们可以使用来查看如何在Elixir中解析表达式 iex(6)> IO.puts Macro.to_string(quote do: (is_number if true, do: 1)) is_num

Elixir 百老汇拓扑如何将事件发送给GenStage制作人\消费者?

我的用例是这样的:百老汇接收来自SQS的消息,每条消息实际上是一个批处理的消息包,每条消息都有一个索引键。我希望遍历bundle,然后将事件发送到后续GenStage,这样就可以通过索引键对它们进行分区并发送到最终的Broadway拓扑。可能的索引键集事先不知道,并且会随着时间的推移而改变。通过这个平台运行的数据的大小已经达到了100 GB的级别,所以我确信需要GenStage提供的所有细节,而且百老汇提供的细节要多得多 我只是不知道如何将这些部分连接在一起,你能简单地订阅百老汇拓扑的GenSt

Elixir Phoenix提示运行不存在的迁移

让我们描述一下问题: 我用mix phx.new创建了一个新的phoenix应用程序 我在{dev,test}中配置了一个数据库连接 我使用mix phx.gen.context创建了一个上下文,它创建了一个迁移 我第一次尝试运行服务器,但它告诉我我已取消部署迁移 there are pending migrations for repo: Some.Repo. Try running `mix ecto.migrate` in the command line to migrate it

模式匹配Elixir中任意大小的列表

我不熟悉长生不老药。我想定义一个只接受列表的函数,但它可以是任意大小的 我可以定义一个接受空列表的函数,如下所示: def doit(my_list = []) do IO.puts my_list end def doit([first]) do IO.puts my_list end def doit(my_list) do IO.puts my_list end 或者只有一个项目,如下所示: def doit(my_list = []) do IO.puts my_l

Elixir 凤凰城的Protocol.UndefinedError

我正在尝试将数据库转换为新环境 我执行了phx.gen.json,然后创建了相关的模型。 数据库中已存在表。我想我不需要对数据库进行exto迁移 然而,当我访问json url路径时,出现了以下错误。 似乎成功地建立了数据库并获取了数据。因为我看到查询OK ** (exit) an exception was raised: ** (Protocol.UndefinedError) protocol Enumerable not implemented for nil of type A

上一页 1 2 ...  63   64   65   66    67   68   69  ... 下一页 最后一页 共 125 页