国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Quartz.NET管理類

2019-11-17 02:46:51
字體:
供稿:網(wǎng)友

Quartz.NET管理類

2014-11-06 19:47 by 無眠, ... 閱讀, ... 評論, 收藏, 編輯

最近做項(xiàng)目設(shè)計(jì)到Quartz.NET,寫了一個Quartz.NET管理類,在此記錄下。

  1     public class QuartzManager<T> where T : class,IJob  2     {  3         #region 變量  4         PRivate static ISchedulerFactory schedulerFactory = new StdSchedulerFactory();  //scheduler工廠  5         private static String JOB_GROUP_NAME = "JOBGROUP_NAME"; //Job群組名  6         private static String TRIGGER_GROUP_NAME = "TRIGGERGROUP_NAME"; //觸發(fā)器群組名  7         #endregion  8   9         #region 添加,刪除,修改Job方法 10         /// <summary> 11         /// 添加一個定時任務(wù),使用默認(rèn)的任務(wù)組名,觸發(fā)器名,觸發(fā)器組名  12         /// </summary> 13         /// <param name="pStrJobName">任務(wù)名</param> 14         /// <param name="pStrCronExpress">觸發(fā)器表達(dá)式</param> 15         public static void addJob(string pStrJobName, string pStrCronExpress,IDictionary<string,object> pDictionary) 16         { 17             try 18             { 19                 IScheduler sched = schedulerFactory.GetScheduler(); 20                 // 創(chuàng)建任務(wù) 21                 IJobDetail job = JobBuilder.Create<T>() 22                     .WithIdentity(pStrJobName, JOB_GROUP_NAME) 23                     .Build(); 24  25                 // 創(chuàng)建觸發(fā)器 26                 ITrigger trigger = TriggerBuilder.Create() 27                     .WithIdentity(pStrJobName, TRIGGER_GROUP_NAME) 28                     .WithCronSchedule(pStrCronExpress) 29                     .Build(); 30  31                 //給任務(wù)傳參數(shù) 32                 foreach (KeyValuePair<string, object> kvp in pDictionary) 33                 { 34                     job.JobDataMap.Put(kvp.Key, kvp.Value); 35                 } 36  37                 sched.ScheduleJob(job, trigger); 38             } 39             catch (Exception e) 40             { 41                 throw new Exception(e.Message); 42             } 43         } 44  45         /// <summary> 46         /// 移除一個任務(wù)(使用默認(rèn)的任務(wù)組名,觸發(fā)器名,觸發(fā)器組名)  47         /// </summary> 48         /// <param name="pStrJobName">任務(wù)名稱</param> 49         public static void RemoveJob(string pStrJobName) 50         { 51             try 52             { 53                 IScheduler sched = schedulerFactory.GetScheduler(); 54                 JobKey jobKey = new JobKey(pStrJobName); 55                 TriggerKey triggerKey = new TriggerKey(pStrJobName, TRIGGER_GROUP_NAME); 56                 sched.PauseTrigger(triggerKey);// 停止觸發(fā)器   57                 sched.UnscheduleJob(triggerKey);// 移除觸發(fā)器   58                 sched.DeleteJob(jobKey);// 刪除任務(wù)   59             } 60             catch (Exception e) 61             { 62                 throw new Exception(e.Message); 63             } 64         } 65  66         /// <summary> 67         /// 修改一個任務(wù)的觸發(fā)時間(使用默認(rèn)的任務(wù)組名,觸發(fā)器名,觸發(fā)器組名)  68         /// </summary> 69         /// <param name="pStrJobName">任務(wù)名</param> 70         /// <param name="pStrCronExpress">觸發(fā)器表達(dá)式</param> 71         public static void ModifyJobTime(string pStrJobName, string pStrCronExpress,IDictionary<string,object> pDictionary) 72         { 73             try 74             { 75                 IScheduler sched = schedulerFactory.GetScheduler(); 76                 TriggerKey triggerKey = new TriggerKey(pStrJobName, TRIGGER_GROUP_NAME); 77                 ICronTrigger trigger = (ICronTrigger)sched.GetTrigger(triggerKey); 78                 if (trigger == null) 79                 { 80                     return; 81                 } 82                 RemoveJob(pStrJobName); 83                 addJob(pStrJobName, pStrCronExpress,pDictionary); 84             } 85             catch (Exception e) 86             { 87                 throw new Exception(e.Message); 88             } 89         } 90         #endregion 91  92         #region 啟動,關(guān)閉Job 93         /// <summary> 94         /// 啟動所有定時任務(wù)  95         /// </summary> 96         public static void startJobs() 97         { 98             try 99             {100                 IScheduler sched = schedulerFactory.GetScheduler();101                 sched.Start();102             }103             catch (Exception e)104             {105                 throw new Exception(e.Message);106             }107         } 108 109         /// <summary>110         /// 關(guān)閉所有定時任務(wù)111         /// </summary>112         public static void ShutdownJobs()113         {114             try115             {116                 IScheduler sched = schedulerFactory.GetScheduler();117                 if (!sched.IsShutdown)118                 {119                     sched.Shutdown();120                 }121             }122             catch (Exception e)123             {124                 throw new Exception(e.Message);125             }126         }  127         #endregion128 129     }

調(diào)用方法也很簡單

1 QuartzManager<MyJob>.addJob(jobnName, cronExpress, dictionary);2 3 QuartzManager<MyJob>.startJobs();


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 绥宁县| 平塘县| 玉田县| 周口市| 保靖县| 张掖市| 揭西县| 芒康县| 库车县| 夏津县| 兴城市| 独山县| 多伦县| 本溪市| 米易县| 中阳县| 江门市| 五大连池市| 松滋市| 门头沟区| 广昌县| 崇仁县| 白水县| 桃江县| 曲周县| 霸州市| 康马县| 鄂托克旗| 凯里市| 吉木萨尔县| 普格县| 和政县| 体育| 武强县| 宁蒗| 迭部县| 天津市| 朝阳县| 扬州市| 黔江区| 敦煌市|