Почему Hangfire не распечатывает сообщение в моем методе
Я написал простое консольное приложение, которое должно выводить сообщение каждую минуту. Я получаю первое печатное сообщение с надписью "запускается", однако я не получаю сообщение вPrintTest()
в моей консоли. Что является причиной этого? Кстати, это консольное приложение ядра.NET.
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Starting");
GlobalConfiguration
.Configuration
.UseSqlServerStorage(@"Server=127.0.0.1,1433; Database=HFTest; User Id=sa; Password=Password123");
RecurringJob.AddOrUpdate((() => PrintTest()), Cron.Minutely());
Console.ReadKey();
}
public static void PrintTest()
{
Console.WriteLine("Hangfire Server started. Press any key to exit...");
}
}
1 ответ
Вам нужно создать BackgroundJobServer
с using
block и поместите в него свой RecurringJob:
static void Main(string[] args)
{
Console.WriteLine("Starting");
GlobalConfiguration
.Configuration
.UseColouredConsoleLogProvider()
.UseSqlServerStorage(@"Server=127.0.0.1,1433; Database=HFTest; User Id=sa; Password=Password123");
using (var server = new BackgroundJobServer())
{
RecurringJob.AddOrUpdate(() => PrintTest(), Cron.Minutely());
Console.ReadKey();
}
}
См. https://docs.hangfire.io/en/latest/background-processing/processing-jobs-in-console-app.html