Elixir 调度员可以访问它吗';s的父生产者方法/属性?
使用Elixir 调度员可以访问它吗';s的父生产者方法/属性?,elixir,genstage,Elixir,Genstage,使用@behavior GenStage.dispatcher创建的自定义dispatcher能否访问其父模块,该父模块以{:producer,state,dispatcher:CustomDispatcher}的身份调用他 我意识到调度程序是在与生产者相同的过程中启动的 例如,如果我尝试从调度员向制作人发起一个handle\u呼叫,那么我将收到: GenStage.call(producer, :test) ** (exit) exited in: Gen
@behavior GenStage.dispatcher
创建的自定义dispatcher能否访问其父模块,该父模块以{:producer,state,dispatcher:CustomDispatcher}
的身份调用他
我意识到调度程序是在与生产者相同的过程中启动的
例如,如果我尝试从调度员向制作人发起一个handle\u呼叫
,那么我将收到:
GenStage.call(producer, :test)
** (exit) exited in: GenServer.call(#PID<0.1575.0>, :test, 5000)
** (EXIT) process attempted to call itself
(elixir) lib/gen_server.ex:917: GenServer.call/3
GenStage.call(生产者:测试)
**(退出)退出:GenServer.call(#PID,:test,5000)
**(退出)进程试图调用自身
(elixir)lib/gen_server.ex:917:GenServer.call/3
有了这个错误,还有其他明显的方法可以访问生产者的方法吗
我知道您可以使用参数初始化dispatcher,但我想访问producer方法/状态,因为它们是通过producer回调修改的如果您只有一个producer,请声明标准接口(如
def foo,do:GenServer.call(\uuu MODULE\uu,:foo)
)当尝试MyProducer.foo时,它与调度程序中的相同:*(退出)退出:GenServer.call(MyProducer,:foo,5000)**(退出)进程试图调用它自己的handle\u info
,应该允许它。一般来说,如果您发现自己需要从调度程序中呼叫制作人,则设计有问题。它必须是抽象的。嗯,我正在考虑使用其他东西,你知道:ets是否可以在节点之间共享?不,不是<代码>记忆状态为。