Supervisor生成在失败时故障转移到其他进程的进程

时间:2016-11-11 05:35:41

标签: elixir phoenix-framework elixir-poison

我有两个genserver实现,它们都通过发出http请求执行查找,并且都返回相同的信息,它们使用不同的提供程序来执行此操作。

我想找出一种可以让第一个进程运行的方法,一旦失败或验证失败,这个进程就会故障转移到使用不同提供者的第二个genserver。

基本上我想要完成的是各种过程故障转移:尝试进程A,如果A失败,请尝试进程B.

你会建议在Elixir中做这件事的最好方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以创建另一个代理进程(管理器),它接收HTTP请求,并决定process_A或process_B是否处理此请求,然后在故障转移时将故障转移到其他进程。

换句话说,我认为处理故障转移不是工作进程的工作,管理器进程应该接管它。