Hangfire无法在asp.net核心

时间:2018-05-24 23:23:52

标签: c# asp.net-core hangfire

enter image description here我相信,我确实正确设置了hangfire,但由于某种原因,hangfire将作业添加到Sql Server数据库但没有执行任何操作。我尝试了一切,但我没理解,因为也没有例外。我想从一个每周都会发送电子邮件的类中运行一个函数。我有工作单元DI,它被注入控制器构造器。具有SendEmails方法的类需要UnitOfWork DI,我没有那么远,因为我无法使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 :(得分:1)

我很想添加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();

}