将 Hang-Fire 默认工作人员数量从 20 更新为 ABP 框架中的自定义数量

问题描述 投票:0回答:1

我想将并发后台作业数从默认的 20 更新为 10。在哪里可以提及此配置?这个link提供了一些信息。但是我如何在ABP框架中配置它呢?

我尝试了下面的配置,但我仍然得到 20 个并行作业

public override void ConfigureServices(ServiceConfigurationContext context)
{
    var configuration = context.Services.GetConfiguration();

    Configure<AbpAutoMapperOptions>(options =>
    {
        options.AddMaps<DemoApplicationModule>();
    });

    ConfigureHangfire(context, configuration);
}
private void ConfigureHangfire(ServiceConfigurationContext context, IConfiguration configuration)
{
    context.Services.AddHangfire(config =>
    {
        config.UseSqlServerStorage(configuration.GetConnectionString("Default"));
        
    });
    context.Services.Configure<BackgroundJobServerOptions>(options =>
    {
        options.WorkerCount = 10;
        options.SchedulePollingInterval = TimeSpan.FromSeconds(30);
    });
    context.Services.AddTransient<IBackgroundServiceManagement,BackgroundServiceManagement>();
}
hangfire abp
1个回答
0
投票

如果您想要更改并行度,您可能正在寻找这个,配置并行度并更改 WorkerCount。

这允许您更改默认队列处理计数,但请记住,大小不应大于处理器数量 * 5(如文档中所述)

更新:@Jerry 不确定 abp 中是否有解决此问题的方法,但有一篇文章讨论了如何使用以下单例解决此问题

context.Services.AddSingleton(provider => new BackgroundJobServerOptions
{
    WorkerCount = 10
});

摘自这篇文章

© www.soinside.com 2019 - 2024. All rights reserved.