У меня есть повторяющееся задание: 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) из общего проекта, который отлично работает в остальной части приложения.