.Net Core Hangfire - 增加工作线程数量



>我有一个带有Hangfire实现的.Net Core应用程序。

每分钟有一个重复作业,如下所示:-

RecurringJob.AddOrUpdate<IS2SScheduledJobs>(x => x.ProcessInput(), Cron.MinuteInterval(1));
var hangfireOptions = new BackgroundJobServerOptions
{
WorkerCount = 20,
};
_server = new BackgroundJobServer(hangfireOptions);

ProcessInput(( 在内部检查一些要处理的 Id的 BlockingCollection((,它会不断处理。

有一段时间,前十个 ProcessInput(( 作业继续处理 10 个工作线程,而其他新的 ProcessInput(( 作业则排队。

为此,我想增加工作线程计数,例如大约 50 个,以便并行处理 50 个 ProcessInput(( 作业。

请指教。 谢谢。

在 .NET Core 版本中,您可以在添加 Hangfire Server 时设置工作线程计数:

services.AddHangfireServer(options => options.WorkerCount = 50);

您可以尝试使用此方法增加工作进程。您必须知道服务器上运行的处理器数量。要获得 100 名工人,您可以尝试

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

相关内容

  • 没有找到相关文章

最新更新