#c# #asp.net-core-webapi #hangfire
Вопрос:
У меня есть ASP.NET Основное веб-приложение, в котором я пытаюсь использовать Hangfire для планирования фоновых заданий (вызов exe-файлов). Все работает с заданиями, поставленными в очередь, как в учебниках:
backgroundJobs.Enqueue(() => Console.WriteLine("Hello world from Hangfire!"));
Однако, когда я пытаюсь запустить:
RecurringJob.AddOrUpdate("job3", () => Process.Start(process), $"*/{interval} * * * *");
Я могу запустить процесс из программы просто отлично, без зависания. Нужно ли мне создавать отдельный процесс для размещения сервера Hangfire и убедиться, что у этого процесса есть система.Диагностика? Или мне нужно самому сериализовать данные и передать их в hangfire по-другому?
Ответ №1:
Вместо того, чтобы передавать ProcessStartInfo, я пошел дальше и создал класс и метод, в которых я передал только идентификатор int, который, я думаю, было легче сериализовать.
RecurringJob.AddOrUpdate<JobRunner>($"Batch id {batchId}",x => x.RunBatchJob(batchId), $" */{interval} * * * *");