Quartz.net 的簡單使用,創建定時任務


 1             ISchedulerFactory sf = new StdSchedulerFactory();
 2             sched = sf.GetScheduler();
 3 
 4             JobDetail job = new JobDetail("job1", "group1", typeof(MyJob));
 5 
 6             string cronExpr = System.Configuration.ConfigurationManager.AppSettings["cronExpr"];  //"*/1 * * * * ?";
 7             CronTrigger trigger = new CronTrigger("trigger1", "group1", "job1", "group1", cronExpr);
 8 
 9             sched.ScheduleJob(job, trigger);
10 
11             sched.Start();         

自定義一個Job類用來執行定時的方法(引用相應的DLL)

public class MyJob : IJob
    {
        public void Execute(JobExecutionContext context)
        {

            using (StreamWriter write = new StreamWriter("D:/test.txt", true))
            {
                write.Write(DateTime.Now.ToString() + "   " + "Execute...");
            }
        }
    }

執行的時間可以在配置文件進行配置,只需要按照相應的格式就行

<appSettings>
    <!--每月21日凌晨1點執行-->
    <add key="cronExpr1" value="0 06 10 21 * ?"/>
    <!--<add key="cronExpr1" value="*/1 * * * * ?"/>-->
  </appSettings>

 

附:配置文件格式

Cron表達式范例:
                 每隔5秒執行一次:*/5 * * * * ?
                 每隔1分鍾執行一次:0 */1 * * * ?
                 每天23點執行一次:0 0 23 * * ?
                 每天凌晨1點執行一次:0 0 1 * * ?
                 每月1號凌晨1點執行一次:0 0 1 1 * ?
                 每月最后一天23點執行一次:0 0 23 L * ?
                 每周星期天凌晨1點實行一次:0 0 1 ? * L
                 在26分、29分、33分執行一次:0 26,29,33 * * * ?
                 每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?
                 
                 
                 
Cron表達式(在Quartz.net里面會用到)


由7段構成:秒 分 時 日 月 星期 年(可選)
"-" :表示范圍  MON-WED表示星期一到星期三
"," :表示列舉 MON,WEB表示星期一和星期三
"*" :表是“每”,每月,每天,每周,每年等
對於星期里面,SUN=1  SAT=6
"/" :表示增量:0/15(處於分鍾段里面) 每15分鍾,在0分以后開始,3/20 每20分鍾,從3分鍾以后開始
"?" :只能出現在日,星期段里面,表示不指定具體的值
"L" :只能出現在日,星期段里面,是Last的縮寫,一個月的最后一天,一個星期的最后一天(星期六)
"W" :表示工作日,距離給定值最近的工作日
"#" :表示一個月的第幾個星期幾,例如:"6#3"表示每個月的第三個星期五(1=SUN...6=FRI,7=SAT)

示例:
"0 0/5 * * * ?" :每5分鍾觸發一次,從0秒以后開始
"10 0/5 * * * ?" :每5分鍾觸發一次,從10秒以后開始。(10:00:10am, 10:05:10am)
"0 30 10-13 ? * WED,FRI" :表示10:30,11:30,12:30,13:30,每一個星期三和星期五執行
"0 0/30 8-9 5,20 * ?" :表示每個月5號和20號 8:00, 8:30, 9:00, 9:30執行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM