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 (将#修改为@)