Описание тега otp
OTP - это набор полезных промежуточных программ, библиотек и инструментов, написанных на Erlang. Это неотъемлемая часть дистрибутива Erlang с открытым исходным кодом. (Для одноразовых паролей используйте [tag: одноразовый пароль])
4
ответа
Erlang, как загружать приложения с их зависимостями
У меня есть несколько приложений в моем кластере, мне нужно запускать некоторые из них иногда на разных хостах. Дело в том, что кластер Erlang уже запущен, поэтому, хотя у меня есть файл ресурсов.app для каждого приложения, в котором указано, какие …
08 май '12 в 16:41
1
ответ
В erlang/OTP как запустить appmon для мониторинга существующего узла?
У меня запущено приложение erlang, запущенное с помощью этой командной строки erl -boot start_sasl -config config/cfg_qa -detached -name peasy -cookie peasy -pa ./ebin -pa ./ebin/mochiweb -s peasy start Если я запускаю новый узел и запускаю appmon:s…
24 июл '09 в 18:38
3
ответа
Могу ли я вызвать функции клиента GenServer с удаленного узла?
У меня есть GenServer на удаленном узле с функциями реализации и клиента в модуле. Могу ли я использовать функции клиента GenServer удаленно? С помощью GenServer.call({RemoteProcessName, :"app@remoteNode"}, :get) работает, я ожидаю, но это громоздко…
22 авг '18 в 15:56
1
ответ
Erlang смешивая синхронизирующие и асинхронные функции
Можно ли заблокировать синхронную функцию (handle_call) для ожидания асинхронного вызова (handle_cast) в другом модуле? т.е. как я могу заставить синхронную функцию ждать (т.е. блокировать), пока не будет получено конкретное сообщение "сделано" от а…
15 ноя '13 в 14:55
3
ответа
Erlang OTP дизайн приложения
Я немного пытаюсь разобраться с моделью разработки OTP, когда я конвертирую некоторый код в приложение OTP. По сути, я делаю веб-сканер, и я просто не знаю, где разместить код, который выполняет реальную работу. У меня есть руководитель, который нач…
11 мар '11 в 22:02
1
ответ
Почему этот дочерний процесс не запускается, когда я запускаю его родительский процесс?
Предположим, у меня есть следующая настройка дерева супервизора с одним родителем, начинающим ребенка, и ребенком, начинающим его внука: defmodule NestedSupervisorTree do # this will be the top line supervisor use Supervisor def start_link, do: Supe…
27 апр '17 в 15:55
1
ответ
Gproc: каждый процесс просто возвращает свой pid при выполнении lookup_pids
Я попытался зарегистрировать некоторые процессы с семейным именем с помощью gproc. По этой причине я создал gen_server, который содержит две функции: первая - для обработки регистрации, а вторая - для поиска PID зарегистрированных процессов. После э…
29 янв '17 в 22:02
2
ответа
Erlang процессы супервизора
Я интенсивно изучал Эрланг, и после окончания "Программирования Эрланга" от Джо Армстронга есть одна вещь, к которой я продолжаю возвращаться. По моему мнению, супервизор порождает один процесс на каждого дочернего обработчика. Таким образом, каждый…
04 окт '14 в 05:23
2
ответа
Какой смысл иметь временных детей для руководителей Erlang?
Супервизоры предназначены для перезапуска процессов, которые не работают. Временные процессы - это те, которые никогда не следует перезапускать. Итак, зачем беспокоиться о том, чтобы этот тип ребенка был у руководителя? Это в основном так, что они …
29 мар '15 в 06:01
2
ответа
Запуск нескольких экземпляров одного и того же обработчика событий в Elixir
У меня есть простой обработчик событий в эликсире, используя GenEvent: defmodule myHandler do use GenEvent #Callback def handle_event {:message, x}, state do IO.puts("Message value is #{x}") {:ok, [x|state]} end end Я могу запустить одного обработчи…
18 дек '15 в 14:06
1
ответ
Как добавить плагин в CouchDB
Мне нужно установить плагин для CouchDB. Проблема в том, что единственная папка, к которой я могу получить доступ на сервере, это домашний каталог пользователя. После того, как я установил переменную ERL_LIBS env, я могу вызвать мой модуль плагина и…
22 янв '15 в 08:25
1
ответ
Завершение процесса Erlang: где / когда это происходит?
Рассмотрим процессы, все связанные в дереве, либо формальное дерево надзора, либо некоторую специальную структуру. Теперь рассмотрим какого-нибудь ребенка или работника в этом дереве, с родителем или супервайзером над ним. У меня два вопроса. Мы хот…
10 дек '14 в 15:42
3
ответа
Как сгенерировать ограниченный по времени ключ или пароль без сохранения данных
Вот мой сценарий... Пользовательское клиентское приложение делает запрос к веб-сервису на доступ. Webservice отвечает "ключом", который действителен только в течение X секунд / минут (время может быть переменным или, по крайней мере, определяемым в …
03 апр '11 в 00:41
1
ответ
Есть ли способ получить доступ к состоянию GenServer?
Есть ли встроенный способ увидеть текущее состояние GenServer? Вы всегда можете реализовать простой вызов для возврата состояния, но есть ли более общий способ? Когда я запускаю: наблюдатель.старт, я могу посмотреть на запущенные приложения и увидет…
09 мар '18 в 13:36
2
ответа
Существует ли ограничение на максимальное количество узлов ejabberd в кластере?
Какое максимальное количество узлов может быть в одном кластере в ejabberd? Есть ли ограничение на это.
20 ноя '15 в 09:26
1
ответ
Как вписать не событийные процессы в дерево контроля?
Я хочу иметь возможность порождать множество процессов, которые обрабатывают данные и помещают их в дерево контроля. Однако все поведения по умолчанию, а именно gen_server, gen_fsm и gen_event, управляются событиями. Они должны получать сообщения, ч…
11 июн '13 в 04:54
0
ответов
Как указать количество ядер, на которых будет работать erlang
Я хотел запустить erlang, изменяя количество ядер, чтобы проверить масштабируемость моей программы. Я ожидаю, что запуск программы на большем количестве ядер должен быть быстрее, чем на меньшем. Как я могу указать основные ограничения? На самом деле…
04 окт '16 в 17:14
1
ответ
Сделать вызов gen_server через Jinterface?
Как мне сделать звонок, как это: order_cat(Pid, Name, Color, Desc) -> gen_server:call(Pid, {order, Name, Color, Desc}). что-то вроде этого: handle_call({order, Name, Color, Desc}, _From, Cats) -> if Cats =:= [] -> {reply, make_cat(Name, Col…
25 апр '14 в 11:24
2
ответа
Как определить RestartStrategy с динамическим наблюдением
Если запустить дочернюю спецификацию статически: init(...) -> {ok, {{RestartStrategy, MaxR, MaxT}, [ChildSpec, ...]}}. Но если я запускаю дочернюю спецификацию динамически: start_child(SupRef, ChildSpec) -> startchild_ret() Как определить Rest…
03 апр '13 в 04:16
1
ответ
Какое поведение OTP я должен использовать для такого модуля?
У меня есть простой модуль erlang, и я хочу переписать его на основе принципов OTP. Но я не могу определить, какой шаблон выбрать мне. Код модуля: -module(main). -export([start/0, loop/0]). start() -> Mypid = spawn(main, loop, []), register( main…
05 июн '12 в 02:42