Hangfire не работает в ядре asp.net - PullRequest
0 голосов
/ 25 мая 2018

enter image description here Полагаю, я правильно установил hangfire, но по какой-то причине hangfire добавляет задания в базу данных Sql Server, но ничего не выполняется.Я перепробовал все, но не смог понять, так как и здесь нет исключений.Я хочу запустить функцию из класса, которая будет отправлять электронные письма каждую неделю.У меня есть Unit Of Work DI, который вводится в контроллер контроллера.Класс, который будет иметь метод для SendEmails, нуждается в DI UnitOfWork, я не зашел так далеко, так как я не мог сделать hangfire для печати сообщения на консоли.Пожалуйста, ваша помощь приветствуется.Спасибо.Мой код:

//Startup.cs ConfigureServices Method 

 services.AddHangfire(x => x.UseSqlServerStorage("Connection"));

//Configure method 


            app.UseHangfireDashboard();
            app.UseFileServer();
// Controller 
 [Route("api/Hello")]
public class HelloController : Controller
{
    [HttpGet]
    public IActionResult Hello()
    {
        RecurringJob.AddOrUpdate(() => Print(),Cron.MinuteInterval(1));
        return Ok();
    }
    public void Print()
    {

        Console.BackgroundColor =ConsoleColor.Red;
        Console.WriteLine(DateTime.Now);
    }

}

1 Ответ

0 голосов
/ 25 мая 2018

Мне не хватало, чтобы добавить app.UseHangfireServer () Я добавил это первый раз, затем каким-то образом удалил его, исправляя ошибки базы данных.Казалось, теперь работает нормально.Мне было просто интересно, если это нормально использовать "IUnitOfWork unitOfWork" в методе конфигурации здесь.

 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IUnitOfWork unitOfWork)
    {



        app.UseHangfireDashboard();
        app.UseHangfireServer();



        RecurringJob.AddOrUpdate(() => new Job(unitOfWork).Print(), Cron.MinuteInterval(1));


        app.UseFileServer();

}

...