Задания не выполняются, когда методы содержат взаимодействие с базой данных - PullRequest
0 голосов
/ 18 января 2019

У меня есть повторяющееся задание: 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 голосов
/ 22 января 2019

Я сделал основную ошибку, изменив очередь задания, но никогда не настраивал сервер для обработки очереди, отличной от заданной по умолчанию ...

...