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

ошибка bad_application при запуске приложения erlang gen_server
Я написал простое приложение erlang, используя gen_server. При запуске с помощью application:start(myapp) я получаю следующий кортеж... {ошибка,{плохое_приложение,{приложение,myapp... (остальная часть конфигурации моего приложения). Других...
361 просмотров
schedule 27.04.2022

Использование таблицы ets для состояния gen_server
Я пишу gen_server, в котором я хочу хранить таблицу ets как состояние, тогда таблица ets была создана где-то еще. Как мне добавить это в состояние gen_server? Я хочу использовать таблицу ets, а не создавать для нее новый словарь, потому что хочу...
1784 просмотров
schedule 25.03.2022

Erlang остановить gen_server
У меня есть gen_server: start(UserName) -> case gen_server:start({global, UserName}, player, [], []) of {ok, _} -> io:format("Player: " ++ UserName ++ " started"); {error, Error} -> Error end ......
5925 просмотров
schedule 12.03.2023

Асинхронная обработка сообщений Erlang с помощью gen_server:cast/2
Я ищу хорошие примеры асинхронной обработки сообщений Erlang с помощью gen_server:cast/2. Я видел пример в модуле OTP ssh, который получает запрос через Module:handle_cast/2, держит его в локальной очереди модуля и отправляет обратно ответное...
3674 просмотров
schedule 05.04.2023

Уведомление Erlang Apple Push не получает ответ-ошибку перед отключением
В настоящее время я немного тестирую свой модуль push-уведомлений. Когда токен устройства недействителен, он отключается... Согласно документации Apple для разработчиков push-уведомлений Я должен получить пакет ответа об ошибке непосредственно...
653 просмотров

Убедитесь, что процесс gen_fsm/gen_server существует при отправке сообщения
Каков наиболее рекомендуемый способ в Erlang убедиться, что какой-то процесс существует перед отправкой ему сообщения/события? В моем сценарии я запускаю процесс при первом появлении сообщения, а затем он остается в живых. Продолжая передавать...
252 просмотров

Erlang — библиотеки против серверов
Чем больше я изучаю/программирую Erlang, тем больше я понимаю, что мне нужно учиться. Но здесь я хотел бы подтвердить или опровергнуть предположение, которое я сделал: Допустим два модуля. Один я упаковываю как библиотеку; другой пакет я как...
94 просмотров
schedule 21.04.2024

исключение no_proc из gen_server
при выполнении кода ниже gen_server вызывает исключение -module(drop). -behaviour(gen_server). -export([start_link/0]). -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2,...
3220 просмотров
schedule 31.03.2022

Как проверить внутреннее состояние gen_server с помощью eunit
Можно ли проверить внутреннее состояние gen_server после вызова функции обратного вызова? Я бы предпочел не менять здесь API своего сервера.
494 просмотров
schedule 12.04.2024

Несоответствие шаблону в Erlang
Я делаю этот звонок: add(Login, Pass, Role) -> gen_server:call(?SERVER, {add, Login, Pass, Role}). и я ожидаю, что это будет соответствовать: handle_call(State, {add, Login, Pass, Role}) -> io:format("add ~n"), Db =...
190 просмотров
schedule 26.05.2023

Gen_tcp через сокет gen_server немедленно закрывается
Я хочу использовать gen_tcp вместо gen_server, вот код: start_link() -> io:format("start_link~n"), gen_server:start_link({global, ?MODULE}, ?MODULE, [], []). init([]) -> {ok,ListenSocket} = gen_tcp:listen(8091, [{active,true},...
409 просмотров
schedule 16.05.2023

Один процесс erlang потребляет больше памяти и запускает аварийные сигналы высокого уровня памяти процесса.
У меня есть erlang gen_server, который асинхронно получает сообщения от клиентов (используя приведение). При обработке каждого сообщения сервер вставляет их в упорядоченную таблицу ETS и удаляет некоторые из них в зависимости от условий (из-за...
764 просмотров
schedule 18.07.2023

Невозможно запустить супервизор: (Protocol.UndefinedError) протокол Enumerable не реализован для
Я пытаюсь запустить Supervisor и GenServer: defmodule SubscriptionManagerSupervisor do use Supervisor def start_link do Supervisor.start_link(__MODULE__, [], [{:name, __MODULE__}]) end # supervisor callback def init([]) do...
119 просмотров
schedule 07.05.2023

Использование атомов из объявленных структур в elixir работает на repl, но не в приложении
Я хочу использовать String.to_existing_atom в эликсире, чтобы избежать утечек памяти. Это 100% работает на REPL: iex(1)> defmodule MyModule do ...(1)> defstruct my_crazy_atom: nil ...(1)> end {:module, MyModule, <<70, 79, 82,...
404 просмотров
schedule 28.05.2023

Наборы изменений Ecto и GenServers с использованием TDD
Я тестирую GenServer с помощью модульного тестирования обратных вызовов handle_{call,cast,info} . Один из моих doctest выглядит следующим образом: @doc """...
175 просмотров
schedule 07.11.2022

Почему модуль обратного вызова Erlang/OTP gen_server должен предоставлять функцию handle_cast?
Я могу понять, почему модуль обратного вызова должен предоставлять функции init и handle_call . init — для создания начального состояния, а handle_call — основная цель создания серверного процесса: обслуживание запросов. Но я не понимаю,...
520 просмотров
schedule 21.08.2022

Применение Phoenix на парке машин
Я разрабатываю приложение Phoenix в реальном времени, используя его модули Channel и Socket. Приложение состоит из нескольких процессов и GenServers. У меня есть вариант использования, когда в событии (которое является вызовом API из микросервиса)...
44 просмотров

erlang - монитор отправляет информацию в оболочку, а не на gen_server
Я пытаюсь подключить gen_server к другому gen_server, и во время подключения серверы должны контролировать друг друга и знать, когда сервер вышел из строя, либо весь узел, либо серверный процесс. после того, как я делаю первую ссылку start_link и...
72 просмотров
schedule 11.01.2023

Эликсир - тестирование полного скрипта
Я пишу тест для проверки функции (автоматически вызываемой GenServer, когда новый файл попадает в папку), которая вызывает другие функции в том же модуле с каналами для чтения файла, обработки его содержимого, чтобы вставить его, если необходимо, и...
82 просмотров

Как интегрировать_тестировать такой генсервер? Правильное использование assert_receive?
У меня есть приложение, удаленно подключенное к другому узлу. Приложение должно иметь возможность вызывать удаленную функцию, используя этот узел. Он работает при вызове из iex, но я действительно изо всех сил пытаюсь правильно выполнить...
129 просмотров