Quartz.NET в трехуровневой архитектуре. С#

92
07 января 2022, 18:00

Есть класс, который унаследован от интерфейса IJob. Экемпляр этого класса у меня создается через реализацию интерфейс. В конструкторе этого класса я вызываю метод для настройки кварца ExecuteTimeBuilder.Start();

Код

public class CalculateManager : ICalculateManager, IJob 
    { 
        private readonly IStrongDataRepository _strongDataRepository; 
    
 
        public CalculateManager(IStrongDataRepository strongDataRepository) 
        { 
 
            _strongDataRepository = strongDataRepository; 
 
            ExecuteTimeBuilder.Start(); 
        } 
 
        public async Task Execute(IJobExecutionContext context) 
        { 
            Console.WriteLine("HelloJob is executing."); 
        } 
 
    }

Метод .Start()

public static async void Start() 
        { 
            IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler(); 
            await scheduler.Start(); 
 
            IJobDetail job = JobBuilder.Create<CalculateManager>() 
                .Build(); 
 
            ITrigger trigger = TriggerBuilder.Create()   
                .WithIdentity("trigger1", "group1")      
                .StartNow()                            
                .WithSimpleSchedule(x => x            
                    .WithIntervalInSeconds(10)     
                    .RepeatForever())          
                .Build();         
            await scheduler.ScheduleJob(job, trigger);    
        }

У меня просто не срабатывает метод Execute. это консольное приложение .Core 3.0 Интерфейсы регестрируются в кастомном классе StartUp

public void ConfigureServices(IServiceCollection services) 
        { 
            services.AddLogging(); 
            services.AddSingleton<IConfigurationRoot>(Configuration); 
 
            services.AddSingleton<IStrongDataRepository, StrongDataRepository>(); 
 
            services.AddSingleton<ICalculateManager, CalculateManager>(); 
 
            services.AddDbContext<ApplicationDBContext>(options => 
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); 
        }

Почему кварц просто игнорирует конфиг и не запускает метод Execute

READ ALSO
Как сохранить картинку на сервере по ее URL?

Как сохранить картинку на сервере по ее URL?

Есть адрес картинки, например http://sitecom/images/image

170
Как обратиться к элементу созданному в echo?

Как обратиться к элементу созданному в echo?

У меня есть следующий код:

109
Как на php разобрать массив ld+json?

Как на php разобрать массив ld+json?

На странице сайта есть разметка schemaorg, она заключена в теги:

120