MVC3网站的内部作业调度(Job Scheduler inside of MVC3 Website

2019-09-20 19:34发布

我正在寻找在找工作调度程序设置为我的MVC3网站的使用里面的一些指导。 我一直在看Quartz.NET这一点,但我有麻烦找在线指导,尽可能的设置,以确保当网站是它的运行。

有了上面的信息考虑在内。 我知道一对夫妇的“缺点”来设置IIS的内部作业调度的。 我希望看到设置的工作是简单的清理工作,其中时间是相当不重要的,所以如果IIS经过并回收该线程的网站真的只是不会是一个大问题。 即。 如果每天运行,由于回收/ 10次重新启动该网站的线程将被罚款/如果因为线程,无法启动这很好,以及(虽然不太可能)运行一个月一次。

我似乎记得在SO或问题,通过谷歌后这显示出设置它的内部Application_Start()Global.asax ,但不能在任何地方现在发现这个信息。 有没有人对如何实现类似于我在谈论的东西任何建议?

Answer 1:

经过一番搜索,我发现这个问题上,以便对实施Quartz.NET的内部会谈global.asax文件。

为了实现它,我只是引用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作业的/ etc这个特定需要。 这主要是由于极端联合国可靠性,在我的问题提到,从它可以接受的。 随着中说,如果你需要任何形式的担保,以当作业的运行,我怀疑你会想用这种方式来实现Quartz.NET。



Answer 2:

您可以创建一个控制台应用程序做的清理工作(我不知道什么样的清理你想做的事)。 您可以使用Windows任务调度程序来调用这个程序,在特定的时间间隔做你的工作

另一种选择是创建一个将在特定的时间间隔执行的SQL工作。 你的工作里面存储的过程可以调用托管代码。 所以,你可以打电话从您的点网代码。

如果是单纯的清洁SQL表,只要写一个SQL工作,这做的。



文章来源: Job Scheduler inside of MVC3 Website