我有两个genserver实现,它们都通过发出http请求执行查找,并且都返回相同的信息,它们使用不同的提供程序来执行此操作。
我想找出一种可以让第一个进程运行的方法,一旦失败或验证失败,这个进程就会故障转移到使用不同提供者的第二个genserver。
基本上我想要完成的是各种过程故障转移:尝试进程A,如果A失败,请尝试进程B.
你会建议在Elixir中做这件事的最好方法是什么?
答案 0 :(得分:1)
您可以创建另一个代理进程(管理器),它接收HTTP请求,并决定process_A或process_B是否处理此请求,然后在故障转移时将故障转移到其他进程。
换句话说,我认为处理故障转移不是工作进程的工作,管理器进程应该接管它。