0
特定の間隔で俳優にメッセージを送信する必要があります。Akkaスケジューラが完了していない
readLine()
右のそれの後に入れてください:val sendSchedule = system.scheduler.schedule(0 milliseconds, 5 minutes, senderActor, doSomething()) readLine()
object SendToActor extends App { import Sender._ val system: ActorSystem = ActorSystem("sender") try { val senderActor: ActorRef = system.actorOf(Sender.props, "sendActor") val sendSchedule = system.scheduler.schedule(0 milliseconds, 5 minutes, senderActor, doSomething()) } finally { system.terminate() } }
残念ながら、スケジューラは、私は、次のいずれかを実行しない限り、実行していないようです:私は、次のコードを使用しています
すぐ後に
Thread.sleep()
を置きます。val sendSchedule = system.scheduler.schedule(0 milliseconds, 5 minutes, senderActor, doSomething()) Thread.sleep(10000)
上記のようにスケジューラが動作しないのはなぜですか?働くために睡眠が必要なのはなぜですか?
意味があります。 system.terminate()を削除して、プロセスを確認します。しかし、スケジュールされたタスクが終了するまで、tryブロックは生き残ってはいけませんか?.Thanks –
No @ F.Lun、 'system.scheduler.schedule'はすぐに戻り、呼び出し元をブロックしません。 – mingchuno