C# 如何修复akka.net中的参与者路径
从日志中可以看出,参与者路径和日志路径是不同的,甚至在路径的末尾附加了$a。我想纠正我的演员路线,所以这是我的阿卡C# 如何修复akka.net中的参与者路径,c#,scheduled-tasks,akka.net,C#,Scheduled Tasks,Akka.net,从日志中可以看出,参与者路径和日志路径是不同的,甚至在路径的末尾附加了$a。我想纠正我的演员路线,所以这是我的阿卡 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://Sch
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.
var config=ConfigurationFactory.ParseString(@)配置{
阿克卡{
木卫一{
固定调度器{
类型=PinnedDispatcher
}
}
}
}");
使用(_actorSystem=actorSystem.Create(“SchedulerAutoAction”,config.GetConfig(“configuration”))
{
/*创建一个actor ref*/
_actorRef=\u actorSystem.ActorOf(Props.Create(()=>newtaskscheduleraktor(mongosettings,dbContext))
.WithRouter(新的RoundRobinPool(2).WithDispatcher(“akka.io.pinted Dispatcher”),“TaskScheduleraktor”);
Console.WriteLine($“aktor路径={u actorRef.path}”);
var delay=TimeSpan.FromMinutes(TaskExecution.task\u execution\u interval);
/*反复安排*/
_actorSystem.Scheduler.ScheduleTeller(TimeSpan.FromMinutes(0)、delay、_actorRef、new Messages()、ActorRefs.NoSender);
}
有人能帮我解决这个问题吗?如上面所述,池路由器是使用父子层次结构实现的。当您创建一个配置为路由器的参与者时,实际上您正在创建一个非常轻量级的参与者(在您的例子中,这个参与者的路径是akka://SchedulerAutoAction/user/TaskScheduleraktor),它下面保存了一个子对象池(路由对象),并将接收到的消息转发给该子对象池。这就是Akka.NET路由器处理并发性的方式
路由被创建为路由器的匿名子级,因此它们的参与者路径与它们的父级路径相同,具有自动生成的后缀($a、$b、$c等),这允许唯一地识别每个路由
您不能更改参与者的路径,因为它描述了参与者在层次结构中的确切位置。如前所述,池路由器是使用父子层次结构实现的。当您创建一个配置为路由器的参与者时,实际上您正在创建一个非常轻量级的参与者(在您的例子中,这个参与者的路径是akka://SchedulerAutoAction/user/TaskScheduleraktor),它下面保存了一个子对象池(路由对象),并将接收到的消息转发给该子对象池。这就是Akka.NET路由器处理并发性的方式
路由被创建为路由器的匿名子级,因此它们的参与者路径与它们的父级路径相同,具有自动生成的后缀($a、$b、$c等),这允许唯一地识别每个路由
您不能更改参与者的路径,因为它描述了参与者在层次结构中的确切位置
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);
}