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

时间:2019-01-18 12:34:50

标签: c# entity-framework hangfire

我有一个定期工作: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),在其他应用程序中也能正常工作。

1 个答案:

答案 0 :(得分:0)

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