了解Monix使用者负载平衡

时间:2018-08-17 10:37:54

标签: scala reactive monix

我正在学习monix 3
下一个代码:

object Main extends TaskApp {
  override def runc = {
    Observable.fromIterable(1 to 10)
      .map{i =>
        val delay = Random.nextInt(1000) + 1000
        println(s"Starting $i, delay = $delay")
        Thread.sleep(delay)     // Imitation of hard execution
        i
      }
      .map{i =>
        val delay = Random.nextInt(1000) + 1000
        println(s"Continue $i, delay = $delay")
        Thread.sleep(delay)
        i
      }
      .consumeWith(Consumer.loadBalance(3, Consumer.foreach(i => println(s"End $i"))))   //Compile error here
  }
}

导致编译错误:

  

缺少参数类型         
.consumeWith(Consumer.loadBalance(3,Consumer.foreach(i => println(s“ End $ i”)))))

我不知道这是怎么回事,以及如何编译此代码?

UPD
第二个问题是如何每n分钟重复一次此流?

1 个答案:

答案 0 :(得分:3)

作为第一个问题的答案,您必须为foreach明确指定类型参数:

Consumer.foreach[Int](i => println(s"End $i"))

要回答第二个问题,请使用Observable.intervalAtFixedRateObservable.intervalAtFixedDelay

请参阅Monix Scaladoc

我希望这会有所帮助。