博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Quartz】常用方法的使用方式(三)
阅读量:5313 次
发布时间:2019-06-14

本文共 6050 字,大约阅读时间需要 20 分钟。

原文:

前言

   总结了一下quartz组件的一些常用方法,以备将来不时之需。哈哈,看着挺简单有些好是值得笔记一下的。好记性不如烂笔头吗?

代码部分:

 方法类内容:

public class ExamplesGo    {        static ISchedulerFactory schedFact = new StdSchedulerFactory();        public static IScheduler sched = schedFact.GetScheduler();    }
View Code

任务触发器分离实现:

#region 1.运行任务【所有】        ///         /// 运行任务        ///         public void Run()        {            if (sched != null)                sched.Start();        }        #endregion        #region 2.添加job        ///         /// 添加job        ///         public void AddJob()        {            IJobDetail job = JobBuilder.Create
() .WithIdentity("HelloJob", "group1") .StoreDurably() .Build(); sched.AddJob(job, true); } #endregion #region 3.添加触发器 ///
/// 添加触发器 /// ///
需要添加触发器的job public void AddTrigger(IJobDetail job) { ITrigger trigger = TriggerBuilder.Create() .WithIdentity("myTrigger", "group1") .WithCronSchedule("0/5 * * * * ?") //5秒执行一次 .ForJob(job) .Build(); sched.ScheduleJob(trigger); } public void AddTrigger1(IJobDetail job) { ITrigger trigger = TriggerBuilder.Create() .WithIdentity("myTrigger2", "group1") .WithCronSchedule("0/1 * * * * ?") //5秒执行一次 .ForJob(job) .Build(); sched.ScheduleJob(trigger); } #endregion #region 4.根据key返回Job ///
/// 根据key返回Job /// ///
需要查找的job名称 ///
public IJobDetail GetJob(string jobName) { JobKey jobKey = sched.GetJobKeys(GroupMatcher
.AnyGroup()).ToList().Where(b => b.Name == jobName).FirstOrDefault(); return sched.GetJobDetail(jobKey); } #endregion
View Code

基本的暂停,恢复,删除:

#region 5.暂停任务[全部暂停]        ///         /// 暂停任务        ///         public void PauseAll()        {            if (sched != null)                sched.PauseAll();        }        #endregion        #region 6.暂停任务【单个任务】        ///         /// 暂停任务        ///         /// 需要暂停任务的名称        public void Shutdown(string jobName)        {            if (sched != null)            {                JobKey jobKey = sched.GetJobKeys(GroupMatcher
.AnyGroup()).ToList().Where(b => b.Name == jobName).FirstOrDefault(); sched.PauseJob(jobKey); } } #endregion #region 7.恢复当前任务 ///
/// 恢复当前任务 /// ///
需要恢复任务的名称 public void ResumeJob(string jobName) { if (sched != null) { JobKey jobKey = sched.GetJobKeys(GroupMatcher
.AnyGroup()).ToList().Where(b => b.Name == jobName).FirstOrDefault(); sched.ResumeJob(jobKey); } } #endregion #region 8.恢复所有任务 ///
/// 恢复所有任务 /// public void ResumeJobAll() { if (sched != null) { sched.ResumeAll(); } } #endregion #region 9.删除当前任务 ///
/// 删除当前任务 /// ///
删除任务名称 public void DeleteJob(string jobName) { if (sched != null) { JobKey jobKey = sched.GetJobKeys(GroupMatcher
.AnyGroup()).ToList().Where(b => b.Name == jobName).FirstOrDefault(); sched.DeleteJob(jobKey); } } #endregion #region 10.删除所有任务 ///
/// 删除所有任务 /// public void DeleteJobAll() { if (sched != null) { sched.Clear(); } } #endregion
View Code

最后一些复杂点的查询:

#region 11.返回所有任务键        ///         /// 返回所有任务键        ///         /// 
public List
GetJobAll() { //获取所有job List
jobKeys = sched.GetJobKeys(GroupMatcher
.AnyGroup()).ToList(); return jobKeys; } #endregion #region 12.返回所有的触发器 ///
/// 返回所有的触发器 /// ///
public List
GetTrigAll() { List
trigKeys = sched.GetTriggerKeys(GroupMatcher
.AnyGroup()).ToList(); return trigKeys; } #endregion #region 13.返回job对应的trigger ///
/// 返回job对应的trigger /// ///
任务名称 ///
public List
GetJobToTrig(string jobName) { JobKey jobKey = sched.GetJobKeys(GroupMatcher
.AnyGroup()).ToList().Where(b => b.Name == jobName).FirstOrDefault(); List
triggerList = sched.GetTriggersOfJob(jobKey).ToList(); return triggerList; } #endregion
View Code

最后添加的两个一个关闭组件和修改触发器:

#region 14.关闭所有任务        ///         /// 关闭所有任务        ///         public void Shutdown()        {            if (sched != null)                sched.Shutdown();        }        #endregion        #region 15.修改任务触发器        public void ModiyTrig()        {            ITrigger trigger = TriggerBuilder.Create()               .WithIdentity("myTrigger", "group1")                // .StartAt(runTime)                .WithCronSchedule("0/10 * * * * ?")     //10秒执行一次               .Build();            sched.RescheduleJob(trigger.Key, trigger);            sched.Start();        }        #endregion
View Code

 

posted on
2018-09-20 08:32 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/9678735.html

你可能感兴趣的文章
全局设置导航栏
查看>>
RxJS & Angular
查看>>
面向对象(多异常的声明与处理)
查看>>
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
无法根据中文查找
查看>>
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
面向对象:反射,双下方法
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>
Java面向对象重要关键字
查看>>
课后作业-阅读任务-阅读提问-2
查看>>
面向对象设计中private,public,protected的访问控制原则及静态代码块的初始化顺序...
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
Awesome Adb——一份超全超详细的 ADB 用法大全
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>