Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Erlang Supervisor用于重新启动与停机主机的连接的策略_Erlang_Behavior_Erlang Supervisor_Gen Server - Fatal编程技术网

Erlang Supervisor用于重新启动与停机主机的连接的策略

Erlang Supervisor用于重新启动与停机主机的连接的策略,erlang,behavior,erlang-supervisor,gen-server,Erlang,Behavior,Erlang Supervisor,Gen Server,我使用erlang作为服务之间的桥梁,我想知道人们对处理断开的连接有什么建议 我正在从本地文件中获取输入,并将它们输出到AMQP,可以想象,AMQP代理可能会崩溃。在这种情况下,我希望继续尝试连接到AMQP服务器,但我不希望CPU与这些连接尝试挂钩。我倾向于在AMQP代码重新启动时休眠。这种“黑客行为”从本质上来说不会绕过快速失败并让erlang处理的目的吗?更一般地说,erlang supervisor行为是否应该用于处理断开的连接?我认为自己编写语义代码来处理与外部服务器的连接是合理的。主管

我使用erlang作为服务之间的桥梁,我想知道人们对处理断开的连接有什么建议


我正在从本地文件中获取输入,并将它们输出到AMQP,可以想象,AMQP代理可能会崩溃。在这种情况下,我希望继续尝试连接到AMQP服务器,但我不希望CPU与这些连接尝试挂钩。我倾向于在AMQP代码重新启动时休眠。这种“黑客行为”从本质上来说不会绕过快速失败并让erlang处理的目的吗?更一般地说,erlang supervisor行为是否应该用于处理断开的连接?

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


您的流程是将本地文件作为管道传输到与AMQP代理相同的流程树中,还是单独的服务?

我同意。也许主管不应该介入业务逻辑,他们只是在那里处理死气沉沉的流程,保持事情的一致性(一对一,一对一,等等)。是的,文件piper和AMQP客户端进程是分开的进程。erlang amqp客户端为每个连接(或者是通道?)创建一个进程,现在我只需要处理它。有很多东西要学!