Описание тега genstage
GenStage - это спецификация для обмена событиями между производителями и потребителями Elixir.
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
1
ответ
Elixir GenStage ConsumerSupervisor Перезагрузите ребенка
Из того, что я читаю здесь: https://hexdocs.pm/gen_stage/ConsumerSupervisor.html все реализации ConsumerSupervisor запускают только дочерний элемент (модуль принтера по ссылке выше) для каждой единицы работы. Есть ли способ перезапустить ребенка, ес…
03 авг '18 в 18:49
1
ответ
Поток эликсира: множество аргументов
Я пытаюсь написать поток, который выглядит так: def perform(id) do id |> Flow.from_stage(max_demand: 10) |> Flow.map(&download(&1)) |> Flow.map(&process(&1)) |> Flow.each(&cleanup(&1, &2)) |> Flow.each(&…
17 окт '17 в 00:46
0
ответов
Ограничение скорости с потоком в эликсире
Как часть потока данных, я хотел бы загрузить список файлов со скоростью 10 запросов в секунду. Является ли спящий поток, как сделано здесь, лучшим подходом? case ExRated.check_rate(@endpoint, scale, limit) do {:ok, _} -> request.() {:error, _} -…
26 авг '18 в 16:20
0
ответов
Может ли Dispatcher получить доступ к своим родительским методам / атрибутам Producer?
Может ли пользовательский диспетчер сделал с @behavior GenStage.Dispatcher получить доступ к своим родительским модулям, который вызывает его как {:producer, state, dispatcher: CustomDispatcher}? Я понял, что диспетчер запускается в том же процессе,…
29 авг '18 в 07:24
0
ответов
Как спать по вкусу потребителю / производителю?
У меня есть Producer, в котором данные выбираются из базы данных: def handle_demand(demand, []) do Logger.debug("#{inspect(self())} Producer empty handle_demand #{demand}") next_pack = selecting new pack case List.last(next_pack) do nil -> Logger…
07 май '18 в 13:47
0
ответов
catch [error] GenServer #PID<0.1278.0> прекращается
Можно ли отловить возможную ошибку в пределах handle_events который создает это исключение? [error] GenServer #PID<0.1278.0> terminating Я пытался слушать в потребителе обратный вызов def terminate(reason, state) do но не вызывается. Мне интер…
22 авг '18 в 13:44
1
ответ
Использование GenStage/Flow для обработки событий в реальном времени
В настоящее время я создаю систему обработки событий в реальном времени с использованием Elixir, и сейчас я пытаюсь обернуть голову вокруг GenStage/Flow, чтобы понять, являются ли это правильные абстракции, на которые можно опираться. К сожалению, п…
16 авг '18 в 19:01
0
ответов
Почему мой потребитель в GenStage не срабатывает?
Когда я бегу iex все данные потребляются DataConsumer. Теперь, если я изменю порядок DataConsumerLevel2 с DataConsumer тогда все данные потребляются DataConsumerLevel2, Это почему? Должен ли Диспетчер отправлять данные потребителям на основе их филь…
23 май '18 в 13:15
1
ответ
GenStage: Как обрабатывать ситуации, когда производитель не может предоставить события?
Следующий сценарий: производитель GenStage обрабатывает поток Twitter (используя Stream API и ExTwitter) и предоставляет набор твитов (макс. Спрос, который запрашивает потребитель) потребителю GenStage. Затем потребитель просто печатает их. Следующа…
12 фев '17 в 13:17
2
ответа
Как проверить Elixir GenStage Consumer?
Я нашел некоторые ресурсы о том, как протестировать производителя, однако я ничего не смог найти, чтобы показать, как тестировать Потребителя. В продюсере я создаю фиктивного потребителя, и все работает нормально, но в потребительском я борюсь с тес…
31 май '18 в 05:28
1
ответ
Эликсир: топология GenStage
В целях самообразования я стараюсь выучить эликсир и обернуть голову вокруг GenStage библиотека. Я прочитал документацию и получил ее по большей части, однако у меня есть пара вопросов для моего конкретного домена. Я пытаюсь построить веб-скребок, к…
12 май '17 в 07:42
2
ответа
Динамический граф вычислений во время выполнения с использованием Elixir Genstage
Я хотел бы иметь возможность динамически изменять конвейер вычислений во время выполнения, но кажется, что GenStage требует, чтобы вычислитель вычислялся во время компиляции через subscribe_to: [...] механизм. Есть ли способ создания динамических вы…
24 окт '18 в 12:24
1
ответ
Используйте соединение redis в Elixir Genstage.
У меня есть пример приложения genstage, и в его потребителях мне нужно использовать соединение с Redis. И я не понимаю, как мне нужно передать это соединение handle_events. Если я напишу: defp connection do {:ok, conn} = Redix.start_link(host: "0.0.…
09 май '17 в 12:46
0
ответов
Elixir GenStage Cast не возвращает совпадений с функциональными предложениями
У меня были проблемы с использованием актеров с GenStage. Я пытаюсь передать данные в источник из разных частей моего кода, но когда я пытаюсь выполнить вызов приведения, я получаю эту ошибку: нет совпадений с функциональными предложениями в ModuleN…
31 авг '17 в 08:12
0
ответов
GenStage: плохое возвращаемое значение
Я пытаюсь реализовать чрезвычайно простой GenStage с целью убедиться, что я его понимаю и могу заставить его работать, прежде чем я начну знакомить с логикой своего конкретного приложения. Я получаю ошибку при возврате данных от производителя. Данны…
27 сен '17 в 18:19
1
ответ
Потребитель эликсира GenStage min_demand
Есть проект с genstage. Производитель A, производитель-потребитель B и потребитель C. B запрашивает события по одному на A (min_demand: 0, max_demand: 1). {:producer_consumer, nil, subscribe_to: [{Grub.Producer, max_demand: 1, min_demand: 0}]} C зап…
10 сен '18 в 20:43
0
ответов
Elixir: настройка GenStages для удовлетворения динамических требований
У меня есть GenStage Producer <- Consumer для чтения и обработки чего-либо с сообщением из моей очереди Amazon SQS, что означает, что мой Consumer запрашивает спрос, когда ему нечего делать, а производитель просто получает и пытается извлечь события…
12 дек '18 в 13:46
1
ответ
Невозможно пропустить поток через пользовательские этапы с "Flow.through_specs/3"
Я пытаюсь включить GenStage в конвейер потока. Однако это приводит к исключению. Если я правильно понимаю, Flow.through_specs/3 будет порождать несколько этапов и разделять входящие элементы соответственно. Я что-то пропустил? Я использую Flow v0.14…
30 авг '18 в 13:26
1
ответ
GenStage.from_enumerable зависает с прерывистым потоком
У меня есть поток, который не производит данные так быстро, как потребляется. Итак, у меня есть продюсер, который определяется так: def start_link() do create_stream |> GenStage.from_enumerable(name: Producer) end Тогда мой производитель-потребит…
27 июн '18 в 15:21