Потребитель эликсира 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 запрашивает несколько событий у B (min_demand: 25, max_demand: 50).
workers = for id <- 1..count do
{:"Elixir.Grub.Worker#{id}", max_demand: 50, min_demand: 25}
end
{:consumer, {in_process_queue, errors_queue}, subscribe_to: workers}
Но на самом деле, C получает и обрабатывает данные по одному (я вижу это из журнала приложения).
Как заставить C обрабатывать данные в пакетном режиме?
1 ответ
GenStage не кэширует данные самостоятельно. Итак, что вам нужно сделать, это кэшировать данные в производителе-потребителе, как это задокументировано.