【问题标题】:elixir GenStage consumer min_demand灵丹妙药 GenStage 消费者 min_demand
【发布时间】:2019-02-15 07:52:07
【问题描述】:

有一个带有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进程数据?

【问题讨论】:

    标签: elixir genstage


    【解决方案1】:

    GenStage 不会自行缓存数据。所以你需要做的是在producer-consumerlike it is documented缓存数据。

    【讨论】:

    • 谢谢,但在这里我只看到生产者中的缓冲,您可以在其中跟踪 handle_demand 事件不足以满足需求。但是在producer-consumer里面怎么做呢,里面没有handle_demand,但是有handle_events呢?
    猜你喜欢
    • 2018-06-12
    • 2018-10-11
    • 1970-01-01
    • 2019-11-30
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多