Вопросы по теме 'gen-server'

Erlang: gen_server или мой собственный сервер?
Мне нужно написать сервер, который будет получать инструкции от других модулей и выполнять действия в зависимости от полученных инструкций. Эффективность — моя главная задача. Итак, я использую gen_server или пишу свой собственный сервер. Под...
1637 просмотров
schedule 26.12.2022

Временные процессы gen_server и обновление pids
В настоящее время я изучаю Erlang в разумных пределах, но у меня есть вопрос о gen_server с руководителями. Если процесс gen_server дает сбой и впоследствии перезапускается супервизором, он получает новый pid. А что, если я хочу, чтобы другие...
414 просмотров
schedule 08.11.2022

Получение состояния gen_server/gen_fsm для отладки
Можно ли получить текущее состояние процесса gen_server (предположительно, отправив какое-то системное сообщение)? Это может быть полезно при отладке. Конечно, я могу добавить сообщение, которое возвращает текущее состояние в handle_call :...
4743 просмотров
schedule 19.04.2022

генерировать серверные синхронные и асинхронные вызовы
Предположим, у меня есть gen_server, который обрабатывает только асинхронные вызовы (таким образом, реализуется только handle_cast), должен ли я сохранить handle_call и заставить его возвращать только общее значение ok, или я должен удалить эту часть...
346 просмотров
schedule 22.09.2022

Руководитель Erlang OTP
Я работаю над упражнением 12-2 из книги «Программирование на Erlang». У меня есть модуль db_server_otp , который реализует поведение OTP gen_server. Я протестировал его как автономный модуль, и он работает должным образом. Теперь мне нужно...
910 просмотров
schedule 06.02.2023

Erlang gen_server с длительными задачами
Добрый день, У меня есть процесс gen_server , который периодически выполняет некоторые длительные задачи по обновлению состояния в handle_info : handle_info(trigger, State) -> NewState = some_long_running_task(),...
4148 просмотров
schedule 17.07.2022

gen_server: звонить каждые X секунд
Статус gen_server представляет собой список и должен обрабатываться один раз каждые X секунд. Поэтому мне нужно выполнять handle_call({process},State) каждые X секунд. Каков наилучший способ выполнения handle_call каждые X секунд?
703 просмотров
schedule 23.10.2022

Супервайзер Erlang. Перезапуск процесса, если он не удался несколько раз, откажитесь и отправьте сообщение
У меня есть несколько gen_server рабочих, которые периодически запрашивают некоторую информацию от аппаратных датчиков. Датчики могут временно выйти из строя, это нормально. Если датчик выходит из строя, рабочий завершает работу с исключением....
1217 просмотров
schedule 28.08.2022

Что произойдет, если в функции handle_call будет запись = состояние?
Функция handle_call в gen_server: Module:handle_call(Request, From, State) -> Result Но я встречаю одну функцию handle_call, подобную этой: handle_call(info, _From, #yuv{decoder = undefined} = State) -> {reply, [], State};...
226 просмотров
schedule 17.08.2022

обрабатывать сохранение временных состояний gen_servers при использовании механизма key-to-pid
Я хотел бы знать, как обрабатывать сохранение переходных состояний gen_servers, когда они связаны с ключом. Чтобы связать ключи с процессами, я использую процесс под названием pidstore. Pidstore в конечном итоге запускает процессы. Я даю ключ и...
327 просмотров

Erlang code_change и локальный вызов функции
Я не знаю, как вызвать функцию local в модуле, чтобы после изменения кода использовалась последняя версия кода. См. следующий пример: 1 -module(test). 2 3 -export([start/0, call/1]). 4 -export([loop/0, add/1]). 5 6 start() -> 7...
366 просмотров
schedule 15.06.2022

Мой супервизор падает, когда я пытаюсь запустить его из eshell?
Я очень новичок в OTP, я пытаюсь создать простой пример, чтобы понять поведение супервайзера: Вот простой инкрементный сервер -module( inc_serv ). -behaviour( gen_server ). -export( [ start/0, inc/1, stop/0 ] ). -export( [ init/1,...
2056 просмотров
schedule 29.07.2023

Erlang: Почему я не могу связать два gen_servers?
У меня есть два модуля gen_server. Первый serv.erl -module(serv). -behaviour(gen_server). -export([init/1, handle_call/3, handle_cast/2, handle_info/2, code_change/3, terminate/2, start_link/0 ])....
935 просмотров
schedule 01.01.2023

gen_server не получает сообщения после вызова httpc
У меня есть один процесс, который отправляет сообщение о паузе на gen_server следующим образом: Results = [gen_server:cast(Child, pause) || {Id, Child, _Type, _Modules} <- supervisor:which_children(?SERVER), ?IGNORE(Id) == false],...
361 просмотров
schedule 04.01.2023

Процессы Erlang gen_server с тайм-аутом
Мне нужно реализовать процессы erlang gen_server, которые работают часами. Но по истечении тайм-аута процесс gen_server должен быть убит. Эти процессы запускаются динамически, поэтому используется динамический надзор. Идея состоит в том, чтобы...
2461 просмотров
schedule 04.04.2022

Как вызвать уникальный зарегистрированный процесс gen_server?
Я новичок в Erlang и пытаюсь создать простой игровой сервер (цель обучения). У меня есть один клиентский контроллер (супервизор), который создает несколько клиентских обработчиков (gen_server). У меня также есть один игровой контроллер...
198 просмотров
schedule 02.02.2023

Какой код будет восстанавливаться после **удаления соединения (время ожидания)**?
У меня есть gen_server в одной системе и 4 клиента в 4 других системах. Код работает, как и ожидалось, в течение 3 или 4 дней, когда gen_server сообщает «** Удаление соединения (время ожидания) **». Поскольку клиенты могут стать активными до или...
132 просмотров
schedule 09.06.2023

Как отключить аварийный дамп для gen_server
Существует gen_server, который хранит в своем состоянии некоторую важную информацию (пароль и т.д.) Лаггер включен, Таким образом, в случае сбоя состояние gen_server сбрасывается в журнал сбоев, например: yyyy-mm-dd hh:mm:ss...
372 просмотров
schedule 20.10.2022

Как реализовать сбрасываемый таймер обратного отсчета с помощью GenServer в Elixir или Erlang
Как реализовать сбрасываемый таймер обратного отсчета с помощью GenServer? 1) выполнить задачу через фиксированное количество времени, скажем, каждые 60 секунд 2) есть способ сбросить обратный отсчет до 60 секунд до истечения таймера Я...
4764 просмотров
schedule 19.10.2022

Elixir GenServer не работает с атрибутами модуля?
Я настраиваю GenServer, который запускается каждый час для кеширования данных. Я последовал примеру Хосе Валима, который был ответом на вопрос о том, как это сделать. Как запускать некоторый код каждые несколько часов в Phoenix рамки? Он...
147 просмотров
schedule 05.10.2022