Вы пропускаете знак равенства после receive
в Caller.Без него метод определен как возвращающий Unit
(т.е. без полезного значения), и akka требует, чтобы вы вернули PartialFunction[Any,Unit]
от получения.
Теперь, чтобы реально реализовать свою логику идиоматическим способом, вы, вероятно, захотите использовать ReceiveTimeout, например так:
class Caller extends Actor {
self.receiveTimeout = Some(1000)
def receive = {
case ReceiveTimeout =>
self ! "msg"
}
}