Пример Akka PingPong не запускается на листе Scala - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь запустить пример пинг-понга из документации Акки здесь .Когда я запускаю его в ScalaFiddle через сайт Акки, все работает как положено.Когда я копирую / вставляю и запускаю его на листе IntelliJ scala, я получаю java.lang.IllegalArgumentException: no matching constructor found on class A$A14$A$A14$Pinger for arguments [].Что здесь не так?Код, приведенный ниже.

Моя рабочая таблица не "работает в процессе компиляции" согласно этой ошибке .В противном случае я пытался работать в «режиме совместимости с затмениями», а также в «режиме REPL» и «интерактивном режиме».Наконец, настройка «Сделать проект перед запуском» не действует.

import akka.actor.{ ActorSystem, Actor, ActorRef, Props, PoisonPill }
import language.postfixOps
import scala.concurrent.duration._

case object Ping
case object Pong

class Pinger extends Actor {
  var countDown = 100

  def receive = {
    case Pong =>
      println(s"${self.path} received pong, count down $countDown")

      if (countDown > 0) {
        countDown -= 1
        sender() ! Ping
      } else {
        sender() ! PoisonPill
        self ! PoisonPill
      }
  }
}

class Ponger(pinger: ActorRef) extends Actor {
  def receive = {
    case Ping =>
      println(s"${self.path} received ping")
      pinger ! Pong
  }
}

val system = ActorSystem("pingpong")

val pinger = system.actorOf(Props[Pinger], "pinger")

val ponger = system.actorOf(Props(classOf[Ponger], pinger), "ponger")

import system.dispatcher
system.scheduler.scheduleOnce(500 millis) {
  ponger ! Ping
}
...