потребитель эликсира GenStage min_demand - PullRequest
0 голосов
/ 10 сентября 2018

Есть проект с 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 Ответ

0 голосов
/ 11 сентября 2018

GenStage не кеширует данные самостоятельно.Поэтому вам нужно кэшировать данные в производителе-потребителе , как это задокументировано .

...