【发布时间】:2018-04-19 16:05:24
【问题描述】:
几天前我开始学习 Elixir,我真的很喜欢它。尤其是使用 Supervisor 进程作为助手来创建容错应用程序的想法。
但是,我认为很自然但到目前为止我找不到任何参考的一种情况是,一种在失败时使用不同配置重新启动子进程 (GenServer) 的方法。
我的用例如下:
我有一个从数据库中获取数据并在某种程度上使用它的过程。数据库连接对于进程寿命至关重要。 如果进程异常退出,我希望能够使用不同的数据库连接(备份数据库),因为它无法连接到数据库/从数据库中获取数据给定的 N 次(而不是释放地狱并抛出进程的通知由于数据库连接而死)
有可能吗?
据我所知,主管每次都以相同的方式重新启动进程。也许以某种方式使用:simple_one_for_one 策略就足够了,但我不知道具体如何。
【问题讨论】:
标签: elixir erlang-otp