Так что я иногда баловался с Elixir, но в прошлом я боролся с тем, как всегда моделировать приложение с процессами.Имея это в виду, я хочу проверить, что я собираюсь сделать, чтобы понять, имеет ли это смысл.
Итак, я создаю простое приложение рабочего процесса, у каждого этапа будут свои правила о том, как оно переходит на следующий этап (этапы), состояние, которое оно может собирать, и события, которые запускаются в результате изменения состояния.Этапы не являются линейными и, по сути, представляют собой график, как на любой диаграмме потоков.
Моя первая мысль при рассмотрении блок-схемы заключается в том, что она очень похожа на совокупность процессов.
Я должен был смоделировать каждую стадию в потоке как свой собственный GenServer, так как они адресуемы, могут содержать состояние и могут использоваться для выполнения событий.
Если это разумный подход (пустья знаю, если это не так), то у меня есть несколько вопросов:
Поскольку это график, каждый этап может иметь несколько связанных следующих и предыдущих этапов.Я хотел бы, чтобы эти этапы контролировались, теперь я действительно собираюсь показать свое отсутствие понимания здесь, но прав ли я, полагая, что руководитель контролирует только процессы, связанные с ним, а не дочерние процессы?Если это так, я хочу, чтобы каждая стадия выступала в роли GenServer и супервизора, возможно ли это / разумно?
Есть ли способ получить все дочерние процессыпроцесс?
Это разумно?
Крис