Описание тега erlang-supervisor
Супервизоры - одна из основных вещей, которые делают Erlang/OTP тем, чем он является. Активное приложение OTP состоит из одного или нескольких процессов, выполняющих работу. Эти процессы косвенно запускаются супервизорами, которые несут ответственность за их контроль и перезапуск при необходимости. Работающее приложение - это, по сути, дерево процессов, как супервизоров, так и рабочих, где корнем дерева является корневой супервизор.
3
ответа
В чем преимущество регистрации имени с помощью {:via, module, term} в GenServer.start_link/3?
В GenServer.start_link/3 Я могу зарегистрировать имя локально, используя атом для такого процесса: defmodule Worker do use GenServer def start_link do GenServer.start_link(__MODULE__, nil, name: :worker) end end Затем я могу запустить супервизора, ч…
18 авг '16 в 07:43
1
ответ
Может ли Elixir OTP Supervisor просто "использовать Supervisor" или он должен "использовать Genserver"?
Итак, глядя на примеры, я немного запутался: Документы об эликсире ( http://elixir-lang.org/getting-started/mix-otp/supervisor-and-application.html), по-видимому, позволяют создавать деревья надзора только с помощью макроса "use Supervisor", Но все …
22 апр '17 в 07:13
1
ответ
Супервайзер с Quantum Elixir Cron Job
Простите, если я не очень хорошо понимаю эликсир, так как я новичок в этом... Я использую квантовый эликсир в качестве cron api для динамического создания заданий cron. Когда кто-то размещает на маршруте, я сохраняю детали задания cron в моем Ecto R…
11 дек '16 в 16:30
1
ответ
Названия стратегий перезапуска OTP кажутся странными. Зачем?
Извините, это не техническая проблема. Названия стратегий перезапуска OTP-супервайзера мне кажутся странными, возможно, потому, что я не являюсь носителем английского языка. Из моего понимания: one_for_one: когда один ребенок умирает, он перезапуска…
01 май '18 в 14:00
2
ответа
Почему мой супервизор терпит неудачу на start_child с помощью undef?
Я пытаюсь запустить simple_one_for_one supervisor где supervisor а также worker размещены в отдельных модулях, и я продолжаю получать следующую ошибку при использовании supervisor:start_child: >A=sup:start_link(). >B=supervisor:start_child(A,[…
19 апр '20 в 22:14
1
ответ
Запуск дочерних процессов elixir для каждого узла с помощью супервизора
Я пытаюсь ввести количество узлов и запустить процессы genserver для каждого из узлов; это каждыйGenServer.start_link(n) (где n - номер узла) запускает отдельный процесс (PID) для каждого процесса. pids = Enum.map(1..totalnodes, fn n -> {:ok, uni…
25 окт '19 в 04:05
1
ответ
Ссылки Erlang собираются мусором?
Я хочу динамически добавлять детей в simple_one_for_oneруководитель. Для этого я думаю о создании дочернего идентификатора, используяmake_ref()и сохраните ссылку на карте. Как только дочерний элемент завершится, ссылка будет удалена с карты. В этом …
14 окт '19 в 22:53
1
ответ
Как передать аргументы командной строки для смешанного запуска --no-halt
Итак, у меня есть модуль приложения, который следует этой схеме: defmodule Project.Application do use Application def start(_type, _args) do children = [ randomchild1, randomchild2, {Project.runapp, "argument" } ] opts = [strategy: :one_for_all, nam…
07 сен '19 в 14:04
2
ответа
Действительно ли поведение Erlang похоже на наследование классов?
В настоящее время я работаю над проектом конвейера данных с использованием Apache Kafka и Erlang в качестве языка потокового процессора (на самом деле у меня нет предыдущего опыта работы с erlang, кроме изучения языка и концепций с начала года). Что…
18 фев '20 в 11:44
1
ответ
Почему мой супервизор терпит неудачу при инициализации с помощью badarg?
Пытаюсь завести супервайзера типа one_for_one с одним ребенком, и я получаю эту ошибку: A = pl:start(). {error,{badarg,[{erlang,apply,[{state,[0|1]},init,[[]]],[]}, {supervisor,init,1,[{file,"supervisor.erl"},{line,295}]}, {gen_server,init_it,2,[{fi…
01 мар '20 в 16:33
0
ответов
Erlang - супервизор не перезапускает рабочий процесс
Я играю с супервизорами Erlang OTP и хочу создать простое приложение с супервизором и работником. Я создал простой воркер на основе gen_server, который принимает 2 числа и делит первое на второе. А если второе число - 0, то вылетает с ошибкой. И у м…
20 мар '20 в 06:05
1
ответ
Где перезапускать потомков simple_one_for_one?
У меня есть приложение на Erlang, в котором есть simple_one_for_one супервизор, который контролирует набор процессов, отслеживающих изменения на веб-страницах (по одному URL-адресу на каждого ребенка). Я запускаю детей, которые должны быть активными…
09 апр '20 в 22:51
2
ответа
Почему я не могу запускать команды rebar3 в приложении, созданном с помощью rebar3?
Я пытался создать приложение rebar3, однако столкнулся с проблемой, я создал новое приложение с помощью rebar3, и когда я пытаюсь его скомпилировать, я получаю ошибку как таковую: > ===> Verifying dependencies... > ===> Uncaught error in…
07 май '20 в 15:35
0
ответов
Конфигурация супервизора
Мне нужно добавить в свою конфигурацию еще одну команду, например: [program:node1] command=node app.js``` how can i add another command something like "&&" : ```[program:node1] command=node app.js && service start ....`` an…
01 июл '20 в 20:24
0
ответов
Узлы, соединяющиеся в Эликсире
Я создаю чат с помощью Elixir, и я создал функцию под названием connect, чтобы все узлы могли подключаться друг к другу. Как подключить все узлы при запуске супервизора без вызова функции в терминале
01 сен '20 в 23:17
1
ответ
Как динамически изменить логин, пароль, хост базы данных Postgres? Несколько баз данных
У меня в приложении несколько репозиториев Postgres. Использую Ecto. Все работает. Теперь я хочу иметь возможность изменять их данные, такие как логин, пароль, хост, динамически. То есть я бы изменил логин / пароль / имя хоста базы данных через html…
18 ноя '19 в 07:15
1
ответ
Как запустить супервизор с воркерами, которые не являются gen_servers?
Привет, я пытаюсь запустить supervisor чьи работники не gen_server(s). Мой супервизор для краткости определен в том же модуле, что и рабочий: Я продолжаю получать эту ошибку, и я попытался поставить MFA атрибут в [ ] безрезультатно. я также поставил…
05 апр '20 в 22:25
2
ответа
Как добавить файл .app.src в независимый модуль / обработчик (файл .erl)
Я работаю над приложением Erlang. Я хочу скомпилировать и запустить один файл.erl из папки src/, в которой используются переменные среды из файла.app.src. Поэтому мое требование - добавить файл.app.src в обработчик и независимо скомпилировать / запу…
23 авг '20 в 13:48
1
ответ
Эликсир - Как убить супервизора, когда связанный процесс убит?
В моем приложении Elixir у меня есть два приложения под названием market_manager а также candle_manager. В приложении candle_manager, У меня есть эта древовидная структура: В приложенииmarket_manager, У меня есть такой: MarketManager.ManagersSupervi…
02 сен '19 в 00:40
1
ответ
Почему дерево супервизии вместо одного централизованного супервизора?
Я изучаю Elixir и Erlang/OTP и хотел бы понять важность наличия дерева надзора при создании высокодоступной системы. Я понимаю важность супервизора в управлении временем жизни рабочих процессов. Но я все же хотел бы знать, почему некоторым приложени…
13 авг '20 в 05:44