如何多次启动gen_server模块
How to start gen_server module many times
在 erlang 中,当我通过包含参数的 start_link(A) 启动 gen_server 模块时,我无法通过更改 A 启动它两次。在控制台上,它显示 {error ,{已经开始,<0.61.0>}}。我该如何解决这个问题?谢谢!
可能您的 start_link
电话看起来像这样:
gen_server:start_link({local, foo}, bar, [], [])
也就是说,启动一个gen_server,使用bar
作为回调模块,并在本地节点上注册名称为foo
的新进程。如果已经有一个名为 foo
的进程,您将收到 already_started
错误。
要在没有注册名称的情况下启动一个 gen_server,从而可以启动任意数量的它们,只需删除第一个参数:
gen_server:start_link(bar, [], [])
在 erlang 中,当我通过包含参数的 start_link(A) 启动 gen_server 模块时,我无法通过更改 A 启动它两次。在控制台上,它显示 {error ,{已经开始,<0.61.0>}}。我该如何解决这个问题?谢谢!
可能您的 start_link
电话看起来像这样:
gen_server:start_link({local, foo}, bar, [], [])
也就是说,启动一个gen_server,使用bar
作为回调模块,并在本地节点上注册名称为foo
的新进程。如果已经有一个名为 foo
的进程,您将收到 already_started
错误。
要在没有注册名称的情况下启动一个 gen_server,从而可以启动任意数量的它们,只需删除第一个参数:
gen_server:start_link(bar, [], [])