Salut je l'ai appliqué la supervision sur l'acteur parent et l'enfant est de lancer MongoTimeOutException (i intentionly soulevé cette exception à des fins d'essai), mais le cas par défaut suis invoquais en matière de supervision est le code icipourquoi cas par défaut de stratégie de surveillance se est invoquée
class child extends Actor {
def receive = {
case insertData(data) =>
//insertion code ,MongoTimeOutException is raised i have killed the service intentionally
}
}
class parent extends Actor {
val child=context.actorOf.....//actor creation code
override val supervisorStrategy = OneForOneStrategy(
maxNrOfRetries = 10, withinTimeRange = 10 seconds) {
case _:MongoException=>
log.error("Got some MongosException, Supervision Strategy says Resume")
Resume
case _:ElasticsearchTimeoutException=>
log.error("Got some ElasticsearchTimeoutException, Supervision Strategy says Resume")
Resume
case _:ElasticsearchException=>
log.error("Got some ElasticsearchException, Supervision Strategy says Resume")
Resume
case _ =>
log.error("Got some Exception, Supervision Strategy says Resume")
Resume
}
def receive = {
case Msg(data) =>
child ! insertData(data)
}
}
object test extends App
{
val parent = system.actorof....//actor creation code
parent !Msg(data)
}
quand je lance ce code MongoTimeOutException ne se produisent, mais ce cas mais j'ai invoqué dans la supervision
case _ =>
log.error("Got some Exception, Supervision Strategy says Resume")
Resume
pourquoi est-ce pas? selon moi, il devrait invoquer ce cas
case _:MongoException=>
log.error("Got some MongosException, Supervision Strategy says Resume")
Je fais quelque chose de mal? aidez-moi s'il vous plaît