Вопросы по теме '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 просмотров
schedule
29.01.2023
Убедитесь, что процесс gen_fsm/gen_server существует при отправке сообщения
Каков наиболее рекомендуемый способ в Erlang убедиться, что какой-то процесс существует перед отправкой ему сообщения/события? В моем сценарии я запускаю процесс при первом появлении сообщения, а затем он остается в живых. Продолжая передавать...
252 просмотров
schedule
23.08.2022
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 просмотров
schedule
08.11.2022
erlang - монитор отправляет информацию в оболочку, а не на gen_server
Я пытаюсь подключить gen_server к другому gen_server, и во время подключения серверы должны контролировать друг друга и знать, когда сервер вышел из строя, либо весь узел, либо серверный процесс. после того, как я делаю первую ссылку start_link и...
72 просмотров
schedule
11.01.2023
Эликсир - тестирование полного скрипта
Я пишу тест для проверки функции (автоматически вызываемой GenServer, когда новый файл попадает в папку), которая вызывает другие функции в том же модуле с каналами для чтения файла, обработки его содержимого, чтобы вставить его, если необходимо, и...
82 просмотров
schedule
26.04.2022
Как интегрировать_тестировать такой генсервер? Правильное использование assert_receive?
У меня есть приложение, удаленно подключенное к другому узлу. Приложение должно иметь возможность вызывать удаленную функцию, используя этот узел. Он работает при вызове из iex, но я действительно изо всех сил пытаюсь правильно выполнить...
129 просмотров
schedule
01.04.2023