• Quartz.Net


    Quartz.Net

    •Quartz.Net是一个定时任务框架,可以实现异常灵活的定时任务,开发人员只要编写少量的代码就可以实现“每隔1小时执行”、“每天22点执行”、“每月18日的下午执行8次”等各种定时任务。
    •Quartz.Net中的概念:计划者(IScheduler)、工作(IJob)、触发器(Trigger)。给计划者一个工作,让他在Trigger(什么条件下做这件事)触发的条件下执行这个工作
    •将要定时执行的任务的代码写到实现IJob接口的Execute方法中即可,时间到来的时候Execute方法会被调用。

    CrondTrigger是通过Crond表达式设置的触发器,还有 SimpleTrigger等简单的触发器。可以通过TriggerUtils的MakeDailyTrigger、MakeHourlyTrigger等方法简化调用。

     1 第一个用户访问我们的WebApplication的时候,Application_Start才运行。
     2 
     3 //0 15 10 ? * *" :Fire at 10:15am every day 
     4             CronTrigger trigger = new CronTrigger("trigger1", "group1", "job1", "group1");
     5             trigger.CronExpressionString = “0 15 10 ? * *”;
     6 
     7 
     8 //每隔一段时间执行任务
     9 IScheduler sched;
    10  ISchedulerFactory sf = new StdSchedulerFactory();
    11             sched = sf.GetScheduler();
    12             JobDetail job = new JobDetail("job1", "group1", typeof(IndexJob));//IndexJob为实现了IJob接口的类
    13             DateTime ts = TriggerUtils.GetNextGivenSecondDate(null, 5);//5秒后开始第一次运行
    14             TimeSpan interval =  TimeSpan.FromHours(1);//每隔1小时执行一次
    15  Trigger trigger = new SimpleTrigger("trigger1", "group1", "job1", "group1", ts, null,
    16                                          SimpleTrigger.RepeatIndefinitely, interval);//每若干小时运行一次,小时间隔由appsettings中的IndexIntervalHour参数指定
    17 
    18             sched.AddJob(job, true);
    19             sched.ScheduleJob(trigger);
    20             sched.Start();
    21 要关闭任务定时则需要sched.Shutdown(true)
  • 相关阅读:
    父子进程 signal 出现 Interrupted system call 问题
    一个测试文章
    《淘宝客户端 for Android》项目实战 html webkit android css3
    Django 中的 ForeignKey ContentType GenericForeignKey 对应的数据库结构
    coreseek 出现段错误和Unigram dictionary load Error 新情况(Gentoo)
    一个 PAM dbus 例子
    漫画统计学 T分数
    解决 paramiko 安装问题 Unable to find vcvarsall.bat
    20141202
    js
  • 原文地址:https://www.cnblogs.com/Tan-sir/p/4865952.html
Copyright © 2020-2023  润新知