Веб-приложение C#, контроль количества доступных потоков в заданиях Hangifre, каждый из которых выполняет Parallel.ForEa ⇐ C#
-
Anonymous
Веб-приложение C#, контроль количества доступных потоков в заданиях Hangifre, каждый из которых выполняет Parallel.ForEa
Я создаю приложение, которое будет планировать некоторые задания с помощью Hangfire. Время от времени они будут выполняться одновременно. Каждое задание имеет количество «конфигураций» для обработки. Чтобы ускорить работу, он выполняется с помощью Parallel.ForEachAsync. Я ищу способ контролировать количество потоков/задач, которые могут использоваться этими вызовами ForEachAsync.
Я иду в неправильном направлении, поскольку ParallelOptions указываются один раз и не могут быть изменены, если количество доступных потоков изменится. Я тоже думал о семафоре, но не могу понять.
Может быть, зарегистрирована служба Singleton, которая будет хранить информацию о количестве доступных потоков, а затем каждое задание Hangfire будет использовать ее, чтобы решить, сколько «конфигураций» оно может выполнять параллельно.
Мне нужен совет по этому поводу, примеры кода, конечно, приветствуются.
Я создаю приложение, которое будет планировать некоторые задания с помощью Hangfire. Время от времени они будут выполняться одновременно. Каждое задание имеет количество «конфигураций» для обработки. Чтобы ускорить работу, он выполняется с помощью Parallel.ForEachAsync. Я ищу способ контролировать количество потоков/задач, которые могут использоваться этими вызовами ForEachAsync.
Я иду в неправильном направлении, поскольку ParallelOptions указываются один раз и не могут быть изменены, если количество доступных потоков изменится. Я тоже думал о семафоре, но не могу понять.
Может быть, зарегистрирована служба Singleton, которая будет хранить информацию о количестве доступных потоков, а затем каждое задание Hangfire будет использовать ее, чтобы решить, сколько «конфигураций» оно может выполнять параллельно.
Мне нужен совет по этому поводу, примеры кода, конечно, приветствуются.
Мобильная версия