Просто скачан Quartz.Net, прочитайте документацию, устаревшую и получив код, который, как я считаю, верен. (Дайте мне знать, если это не так)Quartz.Net в приложении ASP.Net
Я положил это в своем приложении Application_Start моего приложения ASP.Net, и код запускается, но задание не выполняется. Кажется, я где-то читал об установке кварца в качестве сингла, но не уверен, что я сделал это здесь?
Я хочу настроить это для ежедневного запуска в 9.00, но на данный момент они используют StartNow для проверки работы.
Просьба сообщить, что я должен сделать?
private void StartScheduler()
{
ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
IScheduler scheduler = schedulerFactory.GetScheduler();
scheduler.Start();
IJobDetail jobDetail = JobBuilder
.Create()
.OfType(typeof(DBCleanUpJob))
.WithIdentity(new JobKey("test", "1"))
.Build();
var trigger = Quartz.TriggerBuilder.Create()
.ForJob(jobDetail)
.WithIdentity(new TriggerKey("test", "1"))
.WithSimpleSchedule()
.StartNow()
.Build();
//.WithDailyTimeIntervalSchedule(x=>x.StartingDailyAt(new TimeOfDay(09,00)));
scheduler.ScheduleJob(jobDetail, trigger);
}
public class DBCleanUpJob : IJob
{
private IDocumentSession DocumentSession;
public DBCleanUpJob(IDocumentSession DocSession)
{
DocumentSession = DocSession;
}
#region IJob Members
public void Execute(IJobExecutionContext context)
{
throw new NotImplementedException();
}
#endregion
}
Вы должны принять во внимание, что это будет работать только во время работы вашего приложения на вашем веб-сервере. Как только ваше приложение будет закрыто, триггеры кварца больше не будут выполняться. – Jehof
Все нормально. Задача состоит в том, чтобы очистить старые данные из базы данных, которую использует приложение – Jon
. Тогда почему вы хотите выполнить триггер в 9:00. Если ваше приложение (например, WorkerThread в веб-сервере) не запущено, триггер не будет выполнен. – Jehof