Разница между Supervisor и DynamicSupervisor

Кто-нибудь может объяснить разницу между Supervisor и DynamicSupervisor в Эликсире?


person Nuno_Coletiv    schedule 13.02.2018    source источник


Ответы (2)


DynamicSupervisor — это супервизор, предназначенный для динамического контроля и управления многими детьми.

Это основная цель DynamicSupervisor — вы можете прочитать полное предложение на Github

На высоком уровне в предложении изложены четыре основные цели:

  • Упростите API и использование обоих модулей Supervisor. Большая часть документации в модуле Supervisor полна условных выражений: «если тип супервизора :simple_one_for_one, он будет вести себя как X, иначе как Y». Различия в поведении при малом окружающем контексте затрудняют обучение, понимание и использование супервайзеров;
  • Обеспечьте готовое сегментирование супервизора для случаев, когда сам супервизор может быть проблемой масштабируемости;
  • Обеспечьте встроенный реестр, чтобы разработчики не использовали без необходимости зависимости, такие как gproc, или неправильные зависимости, такие как глобальные;
  • Реализовать спецификацию GenStage, чтобы динамические супервизоры могли подписываться на производителей и динамически создавать дочерние элементы в зависимости от спроса;
person Cyzanfar    schedule 13.02.2018

Еще одно очень интересное объяснение

https://blog.carbonfive.com/2018/01/30/comparing-dynamic-supervision-strategies-in-elixir-1-5-and-1-6/

person Nuno_Coletiv    schedule 15.02.2018