当方法包含数据库交互时未执行作业



我有一个重复性作业: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 配置作业。我使用共享项目中的数据库上下文(EF6 db-first .edmx),这在应用程序的其余部分工作正常。

我通过更改作业的队列犯了一个基本错误,但从未将服务器配置为处理与默认队列不同的队列......

最新更新