Akka.NET 可调整大小的池不调整大小?

问题描述

我正在学习 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 routee in the pool example

当我在开始时设置各种池大小时,我观察到了显着的性能提升,例如1(上)和 15(下)路线。

15 routee in the pool example

从 1 routee 开始的可调整大小的配置的性能很差,所以我认为 PoolSize 变量的 UI 更新没有问题,但池大小实际上没有调整大小。 我如何观察池如何调整大小?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...