Я начал разрабатывать аналитический дешборд для Bitshares/Openledger/RuDEX (похожий на razumgolosa и по пути буду опен сорсить библиотеки. В этом релизе интегрирован GenStage, спецификация для управления и обмена событиями между процессами в Elixir. GenStage предоставляет удобный, стандартный интерфейс для управления подписками.
Репозитории
Changelog
- модуль Graphene.Stages.Supervisor
- модуль Graphene.Stages.Blocks.Producer
- пример GenStage потребителя блоков
- опция в конфиге для запуска процесса Stages.Supervisor
- разные улучшения кода и багфиксы
Пример потребителя GenStage ивентов
defmodule Graphene.Stage.Blocks.ExampleConsumer do
use GenStage
require Logger
alias Graphene.Block
def start_link(args, options \\ []) do
GenStage.start_link(__MODULE__, args, options)
end
def init(args) do
{:consumer, args, subscribe_to: args[:subscribe_to]}
end
def handle_events(events, _from, state) do
block = hd(events)
for tx <- Block.unpack_txs(block) do
Logger.info """
New transaction:
#{inspect tx}
"""
end
{:noreply, [], state}
end
end
Дорожная карта
- следующий релиз: assets, feeds
- больше функций, тестов и документации
внедрить подписки- ~~исследовать применение GenStage ~~
@ontofractal, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях: