无论我使用什么计划,都不会触发我在Hangfire中进行的定期工作。我试图使用它BackgroundJob只是为了确保某些东西可以正常工作。我还检查了数据库,并使用计划的作业正确填充了“哈希”表。
这是我正在使用的代码:
try
{
using(var server = new BackgroundJobServer(serverOptions,storage))
{
Log("Hangfire server started");
RecurringJob.AddOrUpdate("Mail", () =>
_notificationHelper.SendEmail(result)
, Cron.MinuteInterval(1), TimeZoneInfo.Local
);
//BackgroundJob.Enqueue(() => _notificationHelper.SendEmail(result));
}
}
Run Code Online (Sandbox Code Playgroud)
那我在做什么错呢?
如果您查看Hangfire仪表板,它将告诉您正在运行多少BackgroundJobServer。如果运行的BackgroundJobServers数量为零,则Hangfire将不执行任何操作,直到启动一个。
由于您使用的BackgroundJobServer一个using,创建循环作业后布置。在BackgroundJobServer具有当重复性作业被触发,否则不会创建任何工作活跃。您可以BackgroundJobServer在程序的开头启动,并在关闭程序时将其处置。或者,您可以BackgroundJobServer在单独的Windows服务应用程序中运行,以便在打开计算机电源时始终在后台运行它。
要了解有关设置后台服务器的更多信息,请参见:http : //docs.hangfire.io/en/latest/background-processing/