Почему Hangfire не распечатывает сообщение в моем методе - PullRequest
0 голосов
/ 17 октября 2019

Я написал простое консольное приложение, которое должно печатать сообщение каждую минуту. Я получаю первое печатное сообщение с надписью «запуск», однако я не получаю сообщение в методе 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 Ответ

1 голос
/ 17 октября 2019

Вам необходимо создать BackgroundJobServer с блоком using и поместить в него свой 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

...