Mag*_*off 5 erlang tcp gen-server
TLDR:是否存在可重用的代码,用于自动重新连接到有时会失败的TCP服务器?
我正在编写一个服务器应用程序 - 调用它hal
- 它还会打开一些与其他服务器的TCP连接 - 其中包括xbmc
.我最初编写它是为了在xbmc
失败时,xbmc
erlang进程将停止并随后由其主管重新启动.
显然,这不是在erlang中执行持久TCP连接的好方法.首先,它确实不起作用:当xbmc
失败时,进程将重新启动太快,主管将关闭整个hal
程序.其次,我显然不应该使用主管:Erlang Supervisor策略重新启动与被拒绝的主机的连接(正如我读到的,这个链接的问题只回答"主管是否解决了这个?",并不是我的问题的重复)
我认为这听起来像是一个相当常见的用例,即使对于偶尔出现故障的主机,也要尽可能保持TCP连接的连接.我应该使用一些OTP或其他库代码来实现这一目标吗?
不,OTP 中没有任何内容可以为您执行此操作。
我想说,考虑到我自己编写过的次数,现在是编写一个像样的连接管理库的时候了。特别是考虑连接尝试和结果的最近历史记录的情况,可以给定一个端点地址(主机名和端口),并使用从主机名查找返回的多个地址来对具有多个目标的端点执行快速故障转移。
归档时间: |
|
查看次数: |
358 次 |
最近记录: |