我試圖安排與阿卡scheduler.schedule隨機的消息,是這樣的:如何在阿卡計劃隨機消息? (消息參考始終是相同的)
system.scheduler.schedule(1 second, 5 seconds, actorRef,
scala.util.Random.nextInt(50))
的問題是,「內部」引用被抓住和消息的調度發送始終是相同的號碼。換句話說,隨機數只生成一次。
我不能想出一個解決方法。任何幫助?
我試圖安排與阿卡scheduler.schedule隨機的消息,是這樣的:如何在阿卡計劃隨機消息? (消息參考始終是相同的)
system.scheduler.schedule(1 second, 5 seconds, actorRef,
scala.util.Random.nextInt(50))
的問題是,「內部」引用被抓住和消息的調度發送始終是相同的號碼。換句話說,隨機數只生成一次。
我不能想出一個解決方法。任何幫助?
使用重載調度方法,該方法需要定期執行一個函數。在函數體內發送消息(隨機數)。
context.system.scheduler.schedule(1 second, 5 second) { actorRef ! Random.nextInt(10) }
這樣nextInt
都會被調用時消息被髮送到將產生actor.So新的隨機數。
您的問題是安排隨機發送郵件的時間?如果是這樣,您可以:
import system.dispatcher
def body:() => Unit =() => {
logServiceRef ! MyMessage("some message")
system.scheduler.scheduleOnce(FiniteDuration.apply(Random.nextInt(5),TimeUnit.SECONDS)) (body)
}
system.scheduler.scheduleOnce(0 second) (body)
顯然不是隨機的持續時間。 – pamu