Hangfire 在 asp.net 核心中不工作
Hangfire not working in asp.net core
我相信,我确实正确设置了 hangfire,但出于某种原因,hangfire 将作业添加到 Sql 服务器数据库,但没有执行任何操作。我尝试了一切,但我无法理解,因为也没有例外。我想 运行 来自 class 的函数,它每周都会发送电子邮件。我有注入控制器构造函数的工作单元 DI。将具有 SendEmails 方法的 class 需要 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);
}
}
我没有添加 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();
}
//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);
}
}
我没有添加 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();
}