예제 #1
0
 public DeadLetterMonitor()
 {
     Receive <DeadLetter>(msg =>
     {
         var sender    = msg.Sender.GetFriendlyName();
         var recipient = msg.Recipient.GetFriendlyName();
         ActorMonitoring.TrackDeadLetter(sender, recipient, msg.Message);
     });
 }
예제 #2
0
 public ExceptionLoggerActor()
 {
     Receive <Error>(msg =>
     {
         // LogSource akka://AkkaAppActorSystem/user/ConsoleUi/CommandHandler/room1
         // look if it's a user created actor
         var friendlyNameIdx = msg.LogSource.IndexOf(UserMarker);
         if (friendlyNameIdx >= 0)
         {
             var friendlyName = msg.LogSource.Substring(friendlyNameIdx);
             ActorMonitoring.TrackException(friendlyName, msg.Cause, msg.Message);
         }
     });
     Receive <InitializeLogger>(mgs => Sender.Tell(new LoggerInitialized()));
 }
예제 #3
0
 protected void TrackReceivedMessage(object message, bool expires)
 {
     ActorMonitoring.TrackReceivedMessage(_friendlyName, message, expires);
 }
예제 #4
0
        // Not needed anymore, we use the custom logging Actor for tracking exceptions

        /*
         * protected override bool AroundReceive(Receive receive, object message)
         * {
         *  try
         *  {
         *      return base.AroundReceive(receive, message);
         *  }
         *  catch (Exception ex)
         *  {
         *      ActorMonitoring.TrackException(_friendlyName, ex, message);
         *      throw;
         *  }
         * }
         */

        protected override bool AroundReceive(Receive receive, object message)
        {
            ActorMonitoring.TrackReceivedMessage(_friendlyName, message, true);

            return(base.AroundReceive(receive, message));
        }
예제 #5
0
        // specific to Akka.net, we do not have a general counter for this event

        /*
         * protected override void PreRestart(Exception reason, object message)
         * {
         *  base.PreRestart(reason, message);
         * }
         */

        protected override void PostRestart(Exception reason)
        {
            base.PostRestart(reason);
            ActorMonitoring.TrackActorRestarted(_friendlyName, reason);
        }
예제 #6
0
 protected override void PostStop()
 {
     base.PostStop();
     ActorMonitoring.TrackActorStopped(_friendlyName);
 }
예제 #7
0
 protected override void PreStart()
 {
     base.PreStart();
     ActorMonitoring.TrackActorStarted(_friendlyName);
 }
예제 #8
0
 protected ReceiveActorWithMonitoring()
 {
     _friendlyName = this.Self.GetFriendlyName();
     ActorMonitoring.TrackActorCreated(_friendlyName, Context.Props.Type, Context.Parent.GetFriendlyName());
 }
예제 #9
0
 protected void TrackReceivedMessage(object message)
 {
     ActorMonitoring.TrackReceivedMessage(_friendlyName, message);
 }