Код: Выделить всё
public class RefreshJob :IJob
{
public RefreshJob(IContainerFactory containerFactory)
{
_logger = containerFactory.GetInstance();
}
public Task Execute(IJobExecutionContext context)
{
return Task.Run(() =>
{
_logger.Information("Executing sample job");
_logger.Information($"Name: {context.JobDetail.Key.Name}");
_logger.Information($"Description: '{context.JobDetail.Description}'");
_logger.Information($"Fire time utc: {context.FireTimeUtc:yyyy-MM-dd HH:mm:ss zzz}");
});
}
}
Код: Выделить всё
var containerFactory = new ContainerFactory();//class with GetInstance method.
_builder.Register(c => new RefreshJob(containerFactory)).SingleInstance();
Код: Выделить всё
static async Task GetScheduler()
{
var factory = new StdSchedulerFactory();
return await factory.GetScheduler();
}
Код: Выделить всё
public void Start()
{
Task scheduler = GetScheduler();
scheduler.Wait();
_jobScheduler = scheduler.Result;
_jobScheduler.Start();
//Trigger
IJobDetail job = JobBuilder.Create().Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("RefreshJob", "GroupName")
.StartAt(DateTime.Now)
.WithPriority(1)
.Build();
_jobScheduler.ScheduleJob(job, trigger);
}
Обновил ошибку
Quartz.SchedulerException: проблема с созданием экземпляра класса «Scheduler.RefreshJob» ---> System.ArgumentException: невозможно создать экземпляр типа, который не имеет пустого конструктора
Параметр имя: RefreshJob
Подробнее здесь: https://stackoverflow.com/questions/553 ... -executing