1

有一个带有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批量处理数据?

4

1 回答 1

1

GenStage 不会自行缓存数据。所以你需要做的是像记录的那样在生产者-消费者中缓存数据。

于 2018-09-10T21:08:43.970 回答