gen-server

    0热度

    1回答

    我正在使用GenServer作为排队系统。我怎样才能使整个应用程序访问相同的过程? 我想过把它application.ex将做到这一点,就像这样: children = [ supervisor(Prefect, [], name: PrefectQueue) ] 我Prefect模块是GenServer: defmodule Prefect do use GenServ

    0热度

    1回答

    我正在尝试为调度程序应用程序(使用Elixir 1.5语法注释)设置监督树。该应用程序应该工作,使: 应用程序启动使用注册表&调度监督员 的SchedulerSupervisor靴,并允许通过start_child回调动态添加的儿童。这需要用于构建调度状态的初始化参数。 调度程序在初始化时将其名称注册到注册中心,并使用一个包含状态的结构进行初始化(调度程序具有操纵调度的功能,但与我遇到的问题无关)

    0热度

    1回答

    我正在制作可发送/接收异步消息的基本Elixir服务器/客户端模块。该模块看起来像下面。 defmodule Bitcoin.WorkerOne do use GenServer def start_link(opts) do IO.puts " - Worker 1 started - " GenServer.start_link(__MODULE__,:ok, opt

    0热度

    1回答

    我正在制作一个主人应用程序。主码如下。此代码异步调用工作人员start_link。一旦工人完成他们的工作,他们会向主人报告异步调用使用handle_cast。在此之后,我打算让主演员'ON',以便它可以重新产生新的工作者演员(就像它在第一个start_link调用中那样)。但是,一旦所有的工作人员都完成了他们的工作,主人就会停下来。这stackoverflow帖子提到使用递归调用,但我不能用Gen

    0热度

    1回答

    如果我GenStage的handle_demand/2方法是这样的: def handle_demand(demand, _state) when demand > 0 do case Queue.dequeue do nil -> Logger.debug("Queue empty.") {:noreply, [], []} {job, up

    3热度

    1回答

    我有一台服务器,我正在创建(一个消息服务),我正在做一些初步测试来进行基准测试。到目前为止,处理数据的最快方式是直接在用户进程上使用并使用工作池。我测试过产卵,这是令人难以置信的缓慢。 该测试只是连接10k用户,并且每个用户同时发送15kb数据(或者尝试太多)并让服务器处理数据(总长度,标题和有效负载) 。 我有工作池的问题是它的唯一快速,当你有足够的工人来抵消连接的数量。例如,如果您拥有500k

    0热度

    1回答

    我正在通过unit testing the handle_{call,cast,info} callbacks测试GenServer。我的一个文档测试 S的如下: @doc """ Call the GenServer to retrieve the initial workout ## Examples

    1热度

    1回答

    我有这样一个天真的缓存GenServer /客户端执行使用ETS: defmodule Cache do use GenServer def start_link() do GenServer.start_link(__MODULE__, []) end def fetch(key, def_value) do case get(

    1热度

    1回答

    我有一个表模块。当它作为gen_server启动时,它会从Clock模块创建2个服务器 - 一个用于X播放器,另一个用于O播放器。 10秒后,时钟会超时,该代码被称为: updateTick(Delta, {{Time, ticking, _}, Host}) -> Now = Time - Delta, case Now of Now when Now > 0 ->

    3热度

    1回答

    我有一个gen_server过程,注册一个全局命名这样的全局名称: global:register_name(<<"CLIENT_", NAME/binary>>, self()), 另一个进程试图发送此过程中使用gen_server:call这样的消息: exit with reason {noproc,{gen_server,call,[{global,<<"CLIENT_122">>},