当方法包含数据库交互时不执行作业
Jobs not being executed when methods contain database interaction
我有一份定期工作:ImportJob.cs 包含以下代码:
[AutomaticRetry(Attempts = 0)]
[DisableConcurrentExecution(5)]
// ReSharper disable once UnusedMember.Global
public class ImportJob : IRecurringJob
{
public void Execute(PerformContext context)
{
context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} Starting import job...");
using (AuthenticationEntities db = new AuthenticationEntities())
{
context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} Counting current login events...");
int loginevents = db.LoginEvents.Count();
context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} Found {loginevents} login events...");
}
context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} Finished import job...");
}
}
作业正在排队,但从未完成(甚至执行过?)。我不确定为什么它没有被执行。
我正在使用 Hangfire.RecurringJobExtensions 包从 jobs.json 配置作业。我正在使用来自共享项目的 dbcontext (EF6 db-first .edmx),它在应用程序的其余部分工作正常。
我在更改作业队列时犯了一个基本错误,但从未将服务器配置为处理与默认队列不同的队列...
我有一份定期工作:ImportJob.cs 包含以下代码:
[AutomaticRetry(Attempts = 0)]
[DisableConcurrentExecution(5)]
// ReSharper disable once UnusedMember.Global
public class ImportJob : IRecurringJob
{
public void Execute(PerformContext context)
{
context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} Starting import job...");
using (AuthenticationEntities db = new AuthenticationEntities())
{
context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} Counting current login events...");
int loginevents = db.LoginEvents.Count();
context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} Found {loginevents} login events...");
}
context.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} Finished import job...");
}
}
作业正在排队,但从未完成(甚至执行过?)。我不确定为什么它没有被执行。
我正在使用 Hangfire.RecurringJobExtensions 包从 jobs.json 配置作业。我正在使用来自共享项目的 dbcontext (EF6 db-first .edmx),它在应用程序的其余部分工作正常。
我在更改作业队列时犯了一个基本错误,但从未将服务器配置为处理与默认队列不同的队列...