Вопросы по теме 'otp'
Процесс менеджера событий в erlang. Именованные процессы или PID?
У меня есть процесс диспетчера событий, который отправляет события подписчикам (например, http_session_created, http_sesssion_destroyed). Если вместо именованного процесса используется Pid, я должен поместить его в функции для работы с менеджером...
381 просмотров
schedule
23.03.2024
Супервайзеры с отсрочкой
У меня есть супервизор с двумя рабочими процессами: TCP-клиент, который обрабатывает подключение к удаленному серверу, и FSM, который обрабатывает протокол подключения.
Обработка ошибок TCP в дочернем процессе значительно усложняет код. Так что я...
2836 просмотров
schedule
16.05.2024
Значение сообщения кортежа об ошибке при вызове start_child/2
Я получаю следующий кортеж ошибки при вызове start_child/2
{error,
{{[],[]},
{child,undefined,"i.file_man",
{sg_file_mgr,start_link,
["i.file",
[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,...
202 просмотров
schedule
10.02.2023
Обратный вызов супервизора для дочернего нормального выхода
Я создаю тестовое приложение, в котором есть один супервизор со стратегией simple_one_for_one и множество дочерних рабочих, динамически добавляемых к нему. Как реализовать обратный вызов (или получить сообщение) в супервизоре, который будет...
1306 просмотров
schedule
26.01.2024
Как может супервизор, достигший_max_restart_intensity, удалить только нарушившего ребенка?
У меня есть one_for_one руководитель, который занимается похожими и полностью независимыми детьми.
Когда есть проблема с одним дочерним элементом, который постоянно вылетает и запускается:
=SUPERVISOR REPORT==== 30-Mar-2011::13:10:42 ===...
5473 просмотров
schedule
19.06.2023
Плохо ли отправлять сообщение self() в init?
В этом примере автор избегает тупиковой ситуации, делая следующее:
self() ! {start_worker_supervisor, Sup, MFA}
в функции инициализации его gen_server. Я сделал что-то подобное в одном из своих проектов, и мне сказали, что этот метод не...
4578 просмотров
schedule
11.10.2023
Erlang - Запуск дочернего элемента из модуля супервизора
Я пытаюсь создать супервизор, который обрабатывает добавление динамических gen_servers. по какой-то причине что-то не работает, и я не совсем уверен, что.
-module(supervisor_mod).
-behaviour(supervisor).
-export([start_link/0, add_child/1])....
4211 просмотров
schedule
10.05.2024
Сервис-ориентированная архитектура с Erlang/OTP: как правильно использовать обмен сообщениями
Ответы на мой предыдущий вопрос о доступе к базе данных и абстракции службы помогли мне понять, что в SOA служба базы данных должна предоставлять публичный API, а не прямой доступ (SQL или через ORM) к базе данных.
Теперь, если я хочу создать...
599 просмотров
schedule
16.03.2022
Подчиненный модуль Erlang: код и распределение ввода-вывода
Мы используем Erlang с модулем slave в приложении, которое порождает подчиненные узлы на разных машинах, которые подчиняются главному узлу на другом компьютере и координируются им. Подчиненные узлы открывают порты на своих машинах и запускают...
597 просмотров
schedule
15.12.2022
Как реализовать временных работников в Erlang/OTP
Каков наиболее традиционный способ реализации процесса, который должен только выполнить свою работу и выйти?
В моем случае этими работниками руководит simple_one_for_one супервайзер. Я искал вокруг, но не нашел ничего лучше, чем просто...
242 просмотров
schedule
10.02.2024
Гарантировано ли выполнение handle_info сразу после инициализации с тайм-аутом 0?
Я получаю странный отчет об ошибке, который заставляет меня думать, что некоторые вызовы выполняются до инициализации gen_server.
Вот код инициализации:
init([ResourceId]) ->
process_flag(trap_exit, true),
{ok, {not_initialized,...
1138 просмотров
schedule
16.05.2024
Почему исполнители simple_one_for_one могут иметь один и тот же идентификатор дочерней спецификации?
Я определяю рабочую спецификацию simple_one_for_one для одного руководителя с именем band_supervisor, а идентификатор дочерней спецификации — jam_musician :
init([]) ->
{ok, {{simple_one_for_one, 3, 60},
[{jam_musician,...
2297 просмотров
schedule
04.02.2024
Удалить нули из списка - Erlang
Как я могу удалить нули из этого списка, скажем, я получаю:
[{"некоторые","другие",[]},ноль,{{"еще","еще",[]},ноль,ноль}]
В конце концов я хотел бы извлечь только первые элементы из длинных кортежей и поместить их в список, например:
["еще...
1021 просмотров
schedule
26.11.2022
как процессы erlang связаны с поведением gen
Я хотел бы знать, как процессы erlang связаны с поведением gen (gen_server, gen_fsm, gen_event). Например, является ли gen_server отдельным процессом, группой процессов или они не имеют отношения ко всем?
143 просмотров
schedule
04.05.2024
установить параметры gen_tcp в Эликсире
Я пытаюсь принять данные через TCP-соединение в Elixir, используя Erlang gen_tcp
{:ok, socket} = :gen_tcp.connect("127.0.0.1" ,2000,[:binary, {:packet, 0}])
receive_data(Socket, [])
Но это не работает из-за плохих аргументов connect . Как...
1223 просмотров
schedule
29.06.2023
Могу ли я при использовании супервизора Erlang выполнить код в ответ на выход дочернего элемента?
Когда ребенок выходит (обычно или при ошибке), я хочу предпринять некоторые действия. Использую ли я erlang:monitor/2? И если да, то как мне получить pid? Кроме того, смогу ли я увидеть, почему он остановился?
95 просмотров
schedule
13.12.2023
расширение ejabberd модулями для пользовательской схемы mysql?
Вместо ejabberd.sql я использую пользовательский Схема MySQL (из-за устаревших причин).
Я буду выполнять некоторые операции с БД для определенных действий, таких как Ping, Pong, доставка сообщений, чтение сообщений и, что наиболее важно,...
471 просмотров
schedule
13.03.2022
Есть ли способ сделать асинхронный вызов gen_server в Erlang?
Например. предположим, у меня есть модуль, реализующий поведение gen_server, и он имеет
handle_call({foo, Foo}, _From, State) ->
{reply, result(Foo), State}
;
Я могу связаться с этим обработчиком, выполнив gen_server:call(Server, {foo,...
1957 просмотров
schedule
11.03.2024
Почему Erlang/OTP не использует несколько супервизоров (или использует)?
Глядя на документацию по OTP, кажется, что типичным способом настройки этих систем является наличие одного супервайзера, контролирующего нескольких работников:
http://www.erlang.org/doc/design_principles/sup_princ.html
Это будет прекрасно...
149 просмотров
schedule
13.07.2022
Какое поведение OTP следует использовать для бесконечного повторения задач?
Я хочу многократно запускать одну и ту же последовательность операций снова и снова рядом с приложением Phoenix (без сбоя всего веб-приложения, если что-то тормозит в воркере, конечно) и действительно не знаю, следует ли мне использовать GenServer,...
1920 просмотров
schedule
08.09.2022