何时在Elixir中使用代理代替GenServer

时间:2019-07-19 07:14:16

标签: erlang elixir gen-server

在阅读GenServerAgent的文档时,我想知道Agent解决GenServer不能解决的用例是什么?那么,什么时候比Agent更喜欢GenServer

我知道您自己的代理程序中定义的功能会在代理程序进程本身上执行,因此可以肯定这是一个很大的区别。

1 个答案:

答案 0 :(得分:4)

  

在阅读GenServer和Agent的文档时,我想知道Agent解决GenServer无法解决的用例是什么?

没有一个GenServer ,因为Agent是在GenServer之上并且非常简单地实现的(仅查看the source)。

  

那么,什么时候更喜欢Agent而不是GenServer?

Agent实现的特殊情况已足够。没有异步回复,没有在调用和强制转换之间进行区分,等等。