по умолчанию в Quartz.net, список заданий и их запуск будут сохранены в памяти, так как вы заподозрили, что должен быть определенно в Application_Start для вызова по первому запросу.
Прежде всего, вам нужно запустить и запустить планировщик в своей области.
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.Start();
Затем, все еще в вашем методе Application_Start, вы должны определить излом, и это триггер:
// Instantiating the job
IJobDetail jobDetail = JobBuilder.Create<MyJob>()
.WithIdentity(new JobKey("MyVeryImportantJob", "VeryImportantJobGroup"))
.Build();
ITrigger jobTrigger = TriggerBuilder.Create()
.WithIdentity(new TriggerKey("MyVeryImportantJobTrigger", "VeryImportantJobTriggerGroup"))
.WithCronSchedule("* 0/15 * * * ?"") // execute every 15 min (in reality at HH:00, HH:15, HH:30 and HH:45)
.Build();
И присоединиться два, чтобы запланировать задание
scheduler.ScheduleJob(jobDetail, jobTrigger);
Планировщик затем будет управлять вашей работой в соответствии с заданным вами триггером (в этом случае каждые 15 мин).
Кроме того, поскольку Quartz.Net будет генерировать выделенный поток для планировщика, это не повлияет на процесс ответа iis, и это предотвратит повторное использование iis-работника, поэтому, когда он будет запущен, он будет работать вечно до тех пор, iis или хост-сервер перезагружается.
После этого, если вы действительно хотите, чтобы ваш планировщик, чтобы начать с веб-сайта без какого-либо запроса на всех, вы можете использовать Provider Service Auto Start (подробнее здесь:
https://www.simple-talk.com/blogs/2013/03/05/speeding-up-your-application-with-the-iis-auto-start-feature/
)
Где вы размещаете свой сайт? У вас есть контроль над сервером, который его размещает? Почему вы хотите запустить его (задание) с веб-сайта? Не можете ли вы использовать [Службу Windows] (https://en.wikipedia.org/wiki/Windows_service) или [Планировщик заданий Windows] (https://en.wikipedia.org/wiki/Windows_Task_Scheduler)? –
Я не очень хорошо знаком с кварцем, но [эти] (http://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html) - это направления для Hangfire, который похож на кварц. Многие направления могут быть похожими. – mason
@YacoubMassad правильный. Нет причин для этого делать это код веб-приложения. Это необходимо реализовать, чтобы он мог постоянно выполняться на сервере. Как он упоминает, используйте диспетчер окон или планировщик задач Windows для запуска консольного приложения. –