Store away currently processed message and resend it after restart
Add an option if currently processed message should be resent or not.
Leave a comment
on 2010-01-24 22:49 *
By viktorklang
Perhaps we could have just one field for current message? like:
case class CurrentMessage(sender : Option[Actor], msg : Any,...)
Actor {
private[Actor] var currentMessage : Option[CurrentMessage] = None
...
}
and if it ain't None when the error handler has run, re-send it?
That would reduce mem-footprint for Actors (reducing the amount of fixed fields) as well as keep things tidy (sender and message beign processed, should be logically connected etc)
case class CurrentMessage(sender : Option[Actor], msg : Any,...)
Actor {
private[Actor] var currentMessage : Option[CurrentMessage] = None
...
}
and if it ain't None when the error handler has run, re-send it?
That would reduce mem-footprint for Actors (reducing the amount of fixed fields) as well as keep things tidy (sender and message beign processed, should be logically connected etc)
on 2010-06-07 21:10 *
By viktorklang
Also, be aware of the risk of crash-loops if there's a ping of death message being re-tried