【问题标题】:How to fix actor path in akka.net如何修复akka.net中的演员路径
【发布时间】:2019-11-11 19:08:10
【问题描述】:
aktor path = akka://SchedulerAutoAction/user/TaskScheduleraktor
[INFO][7/1/2019 5:22:32 AM][Thread 0007][akka://SchedulerAutoAction/user/TaskScheduleraktor/$a] Message Messages from akka://SchedulerAutoAction/deadLetters to akka://SchedulerAutoAction/user/TaskScheduleraktor/$a was not delivered. 1 dead letters encountered.

从日志中可以看出,actor 路径和日志路径是不同的,甚至在路径的末尾也附加了 $a。我想纠正我的演员路径,所以这是我的 akka。

var config = ConfigurationFactory.ParseString(@"configuration {
                akka {
                   io {
                       pinned-dispatcher {
                            type = PinnedDispatcher
                       }
                   }
                }
            }");

            using (_actorSystem = ActorSystem.Create("SchedulerAutoAction", config.GetConfig("configuration")))
            {
                /* create an actor ref */
                _actorRef = _actorSystem.ActorOf(Props.Create<TaskSchedulerAktor>(() => new TaskSchedulerAktor(mongosettings, dbContext))
                             .WithRouter(new RoundRobinPool(2).WithDispatcher("akka.io.pinned-dispathcer")), "TaskScheduleraktor");

                Console.WriteLine($"aktor path = {_actorRef.Path}");

                var delay = TimeSpan.FromMinutes(TaskExecution.task_execution_interval);
                /* schedule repeatedly */
                _actorSystem.Scheduler.ScheduleTellRepeatedly(TimeSpan.FromMinutes(0), delay, _actorRef, new Messages(), ActorRefs.NoSender);
            }

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: c# scheduled-tasks akka.net


    【解决方案1】:

    正如Akka.NET documentation 中描述的那样,池路由器是使用父子层次结构实现的。当您创建一个配置为路由器的参与者时,实际上您正在创建一个非常轻量级的参与者(在您的情况下,此参与者的路径是 akka://SchedulerAutoAction/user/TaskScheduleraktor),它在下面保留一个子池(routee),它将收到的消息转发到该池。这就是 Akka.NET 路由器处理并发的方式。

    Routees 被创建为 router 的匿名子节点,因此它们的 actor 路径与它们的父节点相同,具有自动生成的后缀 ($a, $b, $c 等),它允许唯一地识别每个路由。

    您无法更改演员的路径,因为它描述了演员在层次结构中的确切位置。

    【讨论】:

      猜你喜欢
      • 2015-05-10
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多