Метод расписания HangFire не срабатывает при использовании с Enqueue внутри сервера BackgroundJibC#

Место общения программистов C#
Anonymous
Метод расписания HangFire не срабатывает при использовании с Enqueue внутри сервера BackgroundJib

Сообщение Anonymous »

[Используется последняя версия пакета HangFire Nuget]
Я создал сервис в .NET 6 для выполнения одного задания кукурузы. Мне нужно немедленно выполнить метод и запланировать его повторное выполнение через несколько часов, чтобы выполнить некоторые бизнес-действия на основе пользовательских данных.
Как указано в Program.cs, я зарегистрировал HangFireService. использовать InMemoryStorage (поскольку наша служба будет активна все время) с HangFireServer, как показано ниже,

Код: Выделить всё

builder.Services.AddHangfire(configuration => configuration.UseInMemoryStorage());

// Add the processing server as IHostedService
builder.Services.AddHangfireServer();
И в файле службы у меня есть строки кода ниже в асинхронном методе выполнения

Код: Выделить всё

using(var server = new BackgroundJobServer()){
BackgroundJob.Enqueue(
() => _logger.LogInformation("Fire-and-forget!"));

BackgroundJob.Schedule(
() => _logger.LogInformation("Delayed!"),
TimeSpan.FromHours(7));
}
Когда служба запущена, первая информация LogInformation выполняется сразу и позволяет увидеть сообщение в файле журнала. Но расписание не работает, хотя
Jobid создается, а служба все еще работает.
При анализе журналов обнаружено, что в журнале HangFire указано, что сервер фоновых заданий отключается сразу после создание расписания работы. Я попытался добавить параметры для установки свойства ограничения времени выключения на 7 часов. Но не повезло.
Согласно poc, мне нужно сразу выполнить метод кукурузы и запланировать тот же метод кукурузы позже. Я что-то упускаю?

Подробнее здесь: https://stackoverflow.com/questions/784 ... kgroundjib

Вернуться в «C#»