【问题标题】:Is .net Http Web Request Connection pool per thread or all threads share same pool?.net Http Web 请求连接池是每个线程还是所有线程共享同一个池?
【发布时间】:2020-06-09 17:06:47
【问题描述】:

试图了解 Web 请求连接池和多线程是如何工作的。这个问题来自最近使用 Hangfire 的开发。我们想将最大并发出站 http 请求数限制为 10,因此我们使用默认连接池限制为 10。但是,我们注意到我们同时发送了 10 多个请求,因此我们认为这可能与Hangfire,创造了 20 名工人。

那么问题是什么是 Hangfire 工人?一个线程?每个工人都有自己的连接池吗?还是所有作品共享一个连接池?

【问题讨论】:

    标签: .net multithreading httprequest connection-pooling hangfire


    【解决方案1】:

    您可以更改每个 Hangfire 服务器启动的默认工作人员数量。这是 Hangfire 设置的一部分 (Documentation on Parallelism)

    var options = new BackgroundJobServerOptions { WorkerCount = Environment.ProcessorCount * 5 };
    app.UseHangfireServer(options);
    

    【讨论】:

    • 感谢您的回复。设置 workerCount 对我们来说不是一个选项,因为它也限制了其他并行进程。
    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 2019-02-16
    • 2012-09-03
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 2015-07-26
    相关资源
    最近更新 更多