Я создал сервис в .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));
}
Jobid создается, а служба все еще работает.
При анализе журналов обнаружено, что в журнале HangFire указано, что сервер фоновых заданий отключается сразу после создание расписания работы. Я попытался добавить параметры для установки свойства ограничения времени выключения на 7 часов. Но не повезло.
Согласно poc, мне нужно сразу выполнить метод кукурузы и запланировать тот же метод кукурузы позже. Я что-то упускаю?
Подробнее здесь: https://stackoverflow.com/questions/784 ... kgroundjib