用于重启与被拒绝主机的连接的Erlang Supervisor策略

xrl*_*xrl 7 erlang behavior gen-server erlang-supervisor

我正在使用erlang作为服务之间的桥梁,我想知道人们有什么建议来处理被击落的连接?

我从本地文件中获取输入并将它们输出到AMQP,可以想象AMQP经纪人可能会崩溃.对于这种情况,我想继续重试连接到AMQP服务器,但我不想将CPU与这些连接尝试挂钩.我倾向于在重新启动AMQP代码时进行睡眠.难道"黑客"本能绕过快速失败并让erlang处理它的目的吗?更一般地说,是否应该使用erlang管理员行为来处理故障连接?

Jer*_*all 3

我认为编写自己的语义来处理与外部服务器的连接是合理的。Supervisor 最适合处理您自己的进程树中崩溃/锁定/其他不健康的进程,而不是重新连接到外部服务。

您的进程是在与 AMQP 代理相同的进程树中通过管道传送本地文件还是一个单独的服务?