Slavenin999
@Slavenin999
программист php/erlang/elixir/js

Как в добавить произвольный процесс в gproc?

Доброго времени суток, Хабр!

Возможно ли вообще добавить в gproc произвольный процесс? Суть в следующем. У меня есть два супервизора, первый запускает второго, но делает это только по запросу supervisor:start_child так как стратегия стоит simple_one_for_one. Соответственно передать какие-либо аргументы в момент запуска я не могу. Имя запускаемого процесса вычисляется первым супервизором. Вот и получается, что в первом у меня есть и пид и имя, но зарегистрировать их в gproc я не могу. По крайней мере, апи функции для этого я не нашёл. Все регистрируют вызывающий процесс.
  • Вопрос задан
  • 2435 просмотров
Решения вопроса 1
begemot_sun
@begemot_sun
Программист в душе.
> Соответственно передать какие-либо аргументы в момент запуска я не могу.
Можете. См start_child: www.erlang.org/doc/man/supervisor.html#start_child-2
> If the case of a simple_one_for_one supervisor, the child specification defined in Module:init/1 will be used and ChildSpec should instead be an arbitrary list of terms List. The child process will then be started by appending List to the existing start function arguments, i.e. by calling apply(M, F, A++List) where {M,F,A} is the start function defined in the child specification.

Регистрация в gproc:
gproc:add_local_name(Name) ( https://github.com/uwiger/gproc/blob/master/doc/gp... )
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы