问题描述
我正在学习 Akka.NET 训练营课程,在完成 this one 后,我已经离开了课程的轨道,并尝试实现一个具有可调整大小池的路由器。
我已经改变了这个:
protected override void PreStart()
{
_githubWorker = Context.ActorOf(Props.Create(() =>
new GithubWorkerActor(GithubClientFactory.GetClient))
.WithRouter(new RoundRobinPool(10)));
}
为此:
protected override void PreStart()
{
_githubWorkerPool = new RoundRobinPool(1,new DefaultResizer(1,100));
_githubWorker = Context.ActorOf(Props
.Create(() => new GithubWorkerActor(GithubClientFactory.GetClient))
.WithRouter(_githubWorkerPool));
}
并将路由计数添加到 UI:
_statusLabel.Text = $@"{stats.UsersThusFar} out of {stats.ExpectedUsers} users ({stats.QueryFailures} failures) [{stats.Elapsed} elapsed] Pool size: {stats.PoolSize}";
可以在 this commit 中找到整个更改。
当我在开始时设置各种池大小时,我观察到了显着的性能提升,例如1(上)和 15(下)路线。
从 1 routee 开始的可调整大小的配置的性能很差,所以我认为 PoolSize 变量的 UI 更新没有问题,但池大小实际上没有调整大小。 我如何观察池如何调整大小?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)