Вопросы по теме '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 просмотров

как процессы 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