我相信,我确实正确设置了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);
}
}
答案 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();
}