应该在哪里声明具有 EF DbContext 的全局服务的 Hangfire RecurringJob

Where should Hangfire RecurringJob for a global service with EF DbContext be declared

我很难在文档中的任何地方找到答案。

在 MVC 应用程序中,Hangfire 循环作业应该 declared/called 在哪里?

所有教程都只展示了一个单行声明示例,这很明显:

RecurringJob.AddOrUpdate(() => MethodToRun(42, "foo"), Cron.Minutely);

但是,我不确定在哪里插入。

我需要一个在后台工作的服务来检查数据库中某些对象的状态并用一些更改更新数据库。

这个服务应该只有一个实例,应用程序一启动它就应该运行,所以我在考虑Startup.cs,在我配置Hangfire之后?

此外,即使应该有一个实例,该服务也不应该是 static/singleton,因为我需要注入 EF DbContext,所以我预计我会 运行 遇到问题上下文实例。 我想 Ninject 依赖注入可以很好地处理这种情况?

Startup.cs 中声明作业就可以了。使用相同的上下文可能会产生问题。因此,最好为作业获取上下文的新实例。您可以在 discuss.hangfire.io.

查看讨论帖