经过一些更多的搜索,我发现this关于SO的问题,谈到在global.asax
文件里面实现Quartz.NET。
要实现它,我只是引用在新的Quartz.dll
(在这篇文章的时候)下载软件包,并用下面的代码...
protected void Application_Start()
{
/*
* Include other Application_Start() code...
*/
//Job Scheduling
try {
//Setup the new Scheduler
var sf = new StdSchedulerFactory();
var sched = sf.GetScheduler();
sched.Start();
//Setup the Job
var jobDetail = new JobDetailImpl("myJob", null, typeof(DocCleanup));
//Create 1 week trigger that will go on forever
var trigger = new SimpleTriggerImpl("jobTrigger", SimpleTriggerImpl.RepeatIndefinitely, new TimeSpan(168, 0, 0));
trigger.StartTimeUtc = DateTimeOffset.Now;
//Add the job to the scheduler
sched.ScheduleJob(jobDetail, trigger);
} catch (Exception ex) { //Implement Exception code... }
}
我不希望建立一个控制台应用程序/ SQL作业/等这个特殊的需求。这主要是由于我的问题中提到的极端不可靠的情况。有了这个说法,如果你需要任何一种工作时间的保证,我怀疑你会希望以这种方式实现Quartz.NET。
优秀!最简单,最干净的代码我见过。 – 2014-01-28 04:55:02
当没有人访问您的网站并关闭应用程序时,该怎么办? – 2015-08-19 22:42:56
@Gaʀʀʏ文本的最后一位特别说明了这一点。如果你需要一个可靠的作业调度器,你必须创建一些应用程序来运行在服务器/ pc/etc中。在我的场景中,如果应用程序池已关闭,则无关紧要,只需在开始时运行该作业即可。 – Jared 2015-08-25 18:14:13