Параллельная задача в Hangfire Recurring Job - PullRequest
0 голосов
/ 15 октября 2019

Мне нужно запускать параллельные задачи внутри повторяющегося задания, запускаемого каждую минуту Hangfire.

Фабрика пробных заданий, которая запускает задание, но никогда не ожидает фактического выполнения.

ПараллельноForeach также делает то же самое.

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Это на самом деле не связано с зависанием, но если вы хотите запустить некоторые вещи параллельно, вы можете использовать что-то похожее на приведенное ниже:

public void Test() {
    List<Task> tasks = new List<Task>();
    tasks.Add(Task.Run(() => {
        // your code here 
    }));

    tasks.Add(Task.Run(() =>
    {
        // your other parallel code here
    }));
    Task.WhenAll(tasks).Wait();
}

Если вы используете более новую версию hangfire, он поддерживает асинхронный метод дляфоновые задания, так что вы просто измените последнюю строку на await Task.WhenAll(tasks);.

0 голосов
/ 15 октября 2019

Вы можете использовать свойство Result из Task, оно будет ждать запуска вашего процесса и получать значение процесса.

Другой способ - использовать async await, но ваш процесс должен быть асинхронным.

Я надеюсь, что помог тебе.

...