Описание тега gen-server
NoneGen_server означает "общий сервер", поведение модуля в Erlang.
3
ответа
Могу ли я вызвать функции клиента GenServer с удаленного узла?
У меня есть GenServer на удаленном узле с функциями реализации и клиента в модуле. Могу ли я использовать функции клиента GenServer удаленно? С помощью GenServer.call({RemoteProcessName, :"app@remoteNode"}, :get) работает, я ожидаю, но это громоздко…
22 авг '18 в 15:56
3
ответа
Сохранение большой карты в GenServer, это допустимый вариант использования?
Может ли это быть допустимым использованием GenServer: Если process_id является user_id и он уникален. Процесс содержит результат запроса большой карты данных, которая генерируется через БД. Теперь, если сотни пользователей вошли в систему и запроси…
16 ноя '17 в 11:00
1
ответ
Elixir Genserver получает доступ к своим собственным структурным данным
У меня есть модуль Generver эликсир, который инициализируется с defstruct Но я не могу понять, как получить доступ к данным из этого строгого в своих собственных частных модулях. Вот структура, с которой он инициализируется: defstruct info: "test_da…
25 май '17 в 19:13
1
ответ
Как использовать Task.await с GenServer?
Я пытаюсь выяснить, как запустить genserver и дождаться результата, пока он не закончится. Как заставить сервер вернуть результат при выходе? как например: defmodule DistanceMatrix do use GenServer def start id do GenServer.start(__MODULE__, id) end…
16 июл '18 в 12:28
1
ответ
Неверный аргумент в вызове fxml_stream:new(undefined, 65536)
Я не знаком с эрлангом и новичком в ejabberd. Я получаю следующую ошибку в crash.log. 2017-06-22 04:58:53 =CRASH REPORT==== crasher: initial call: ejabberd_receiver:init/1 pid: <0.23584.370> registered_name: [] exception exit: {{badarg,[{fxml_…
22 июн '17 в 09:23
1
ответ
Как перезапустить сбой контролируемого процесса через определенное время?
У меня есть простое приложение на основе GenServer, которое анализирует веб-страницу и воспроизводит данные, полученные с нее. Код выглядит примерно так: def start_link do GenServer.start_link(__MODULE__, %{}) end def init(state) do schedule_work(1)…
10 июл '18 в 18:15
1
ответ
Elixir GenServer.start_link выдает исключение вместо возврата кортежа
Я немного играю с GenServer и у меня есть проблемы с реализацией пользовательских init Перезвоните. Пожалуйста, рассмотрите следующий код: defmodule GenS do use GenServer def start_link(initial \\ 0) do GenServer.start_link(__MODULE__, initial) end …
07 сен '16 в 19:20
0
ответов
Эликсир: разделение задач Genserver на машины
Мой потребитель Genserver выглядит так: defmodule Consumer do use GenStage def start_link() do GenStage.start_link(__MODULE__, :ok) end def init(:ok) do {:consumer, :ok, subscribe_to: [Broadcaster]} end def handle_events(documents, _from, state) do …
13 окт '17 в 02:41
2
ответа
Единый процесс Erlang, потребляющий больше памяти и запускающий сигнализацию высокого уровня
У меня есть erlang gen_server, который получает сообщения от клиентов асинхронно (используя приведение). При каждой обработке сообщений сервер вставляет их в упорядоченную таблицу ETS и удаляет некоторые из них в зависимости от условий (из-за условн…
31 мар '16 в 10:17
4
ответа
Как периодически выполнять действия с помощью gen_server Эрланга?
Я хочу запустить gen_server, который дополнительно будет выполнять одно действие каждую минуту. Каков наилучший способ запланировать это?
04 май '11 в 12:55
1
ответ
Erlang TCP сервер голосования ногами
Я пытаюсь написать простую опцию голосования, чтобы добавить на свой существующий сервер. У меня есть маршрутизатор сообщений, использующий gen_server, и он хранит все подключенные клиенты, используя init([]) -> {ok, dict:new()}, Маршрутизатор от…
05 апр '15 в 01:19
1
ответ
Какой смысл в аргументе:ok init в примере Elixir GenServer?
Во вступлении Elixir к GenServer клиентский API запускает сервер с :ok аргумент def start_link(opts \\ []) do GenServer.start_link(__MODULE__, :ok, opts) end И сервер init функция требует, чтобы ее аргумент был :ok def init(:ok) do {:ok, HashDict.ne…
12 ноя '15 в 00:33
1
ответ
Elixir GenStage ConsumerSupervisor Перезагрузите ребенка
Из того, что я читаю здесь: https://hexdocs.pm/gen_stage/ConsumerSupervisor.html все реализации ConsumerSupervisor запускают только дочерний элемент (модуль принтера по ссылке выше) для каждой единицы работы. Есть ли способ перезапустить ребенка, ес…
03 авг '18 в 18:49
1
ответ
Получение состояния gen_server/gen_fsm для отладки
Можно ли получить текущее состояние gen_server процесс (предположительно путем отправки какого-либо системного сообщения)? Это может быть полезно при отладке. Конечно, я могу добавить сообщение, которое возвращает текущее состояние handle_call: get_…
23 ноя '10 в 08:31
1
ответ
Erlang shell перестал загружать мои модули
Это работало нормально на прошлой неделе. Я бы открыл cd myprojectdir erl (erlang shell). c(room). {ok, R} = room:go(). тогда я мог бы использовать gen_server для отправки сообщений в R, взаимодействуя с моим модулем комнаты. Я начал в ветке ковбойс…
29 янв '17 в 22:41
2
ответа
Убедитесь, что процесс gen_fsm/gen_server существует при отправке сообщения
Каков наиболее рекомендуемый способ в Erlang, чтобы убедиться, что какой-то процесс существует до отправки ему сообщения / события? В моем сценарии я запускаю процесс при первом появлении сообщения, а затем оно остается в живых. Продолжая передавать…
23 июл '13 в 16:14
2
ответа
Как запустить Elixir Supervisor в escript
У меня есть смешанный проект с максимально простым Supervisor и GenServer. Когда я звоню из iex: EchoCmd.Supervisor.start_link([:Hello]) GenServer.call(:echoserver, :echo) GenServer.call(:echoserver, :mumble) GenServer.call(:echoserver, :echo) Вызов…
17 ноя '14 в 00:47
1
ответ
Erlang: как правильно диспетчировать gen_server с start_child в супервизоре и вызывать API
У меня есть gen_server в моем приложении cavv, которое мне нужно сначала запустить, чтобы выполнить вызов. Я хочу использовать диспетчер команд для этого. Для краткого примера это gen_server API: gen_server: cavv_user -module(cavv_user). -behavior(g…
02 сен '16 в 16:43
1
ответ
Elixir GenServer handle_call тип обратного вызова
Я внедряю GenServer, и я в замешательстве. я знаю handle_cast является асинхронным, что означает, что вызывающая сторона не ожидает ответа, и мы возвращаем кортеж, подобный этому: {:noreply, new_state}, Я заметил, что мы также можем вернуть тот же к…
23 окт '18 в 12:41
1
ответ
Обрабатывать "события" асинхронно с эликсиром и фениксом
Я использую контроллеры Phoenix для получения данных через вызовы REST. Таким образом, приложение для iOS может отправлять "события" для каждого пользователя, и в зависимости от события мне нужно рассчитать балл / баллы и отправить его обратно польз…
01 апр '16 в 01:11