博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
定时执行任务
阅读量:6831 次
发布时间:2019-06-26

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

首先  Install-Package Quartz;

using System;using Quartz;using System.Collections.Specialized;using Quartz.Impl;using Common.Logging;namespace LisWms.Sch{    public class Scheduler    {        private static Scheduler instance;        private static Object locker = new Object();        public static IScheduler scheduler;        ///         /// 创建Scheduler        ///         /// 
public static Scheduler GetInstance() { lock (locker) { if (instance == null) { instance = new Scheduler(); } } return instance; } private Scheduler() { //工厂方式创建 IScheduler接口 ISchedulerFactory sf = new StdSchedulerFactory(); scheduler = sf.GetScheduler(); } public static void Start() { scheduler.Start(); } /// /// /// public static void Stop() { scheduler.Shutdown(true); instance = null; } /// /// 暂停所有动做 /// public static void Pause() { scheduler.PauseAll(); } /// /// 恢复所有动做 /// public static void Resume() { scheduler.ResumeAll(); } /// /// 添加多个job任务 /// /// /// public static void AddJob(IJobDetail jobDetail, ITrigger trigger) { // 当Trigger认为应该触发的时候就会调用(实际上是Scheduler调用)job.execute方法了。 scheduler.ScheduleJob(jobDetail, trigger); } /// /// 删除相关的job任务 /// /// ///
public static bool DeleteJob(JobKey jobKey) { return scheduler.DeleteJob(jobKey); } }}
View Code

如上 Scheduler 类

设置 定时调度任务

//初始化            Scheduler.GetInstance();                      #region AppUserJob            //==========AppUserJob===========            IJobDetail AppUserJob = JobBuilder.Create
() //创建一个作业 .WithIdentity("AppUserJob", "lisWmsSyn") .Build(); ITrigger AppUserJobTri = TriggerBuilder.Create() .WithIdentity("AppUserJobTri", "lisWmsSyn") .StartNow() .WithSimpleSchedule(x => x //触发时间,60秒一次。 .WithIntervalInSeconds(60) .WithMisfireHandlingInstructionFireNow() .RepeatForever()) //不间断重复执行 .Build(); //帮助类 HelpEvent help = new HelpEvent(); help.SetMsgEvent -= new HelpEvent.SetMsg(AddMsg); help.SetMsgEvent += new HelpEvent.SetMsg(AddMsg); Scheduler.scheduler.Context.Put("HelpEvent", help); Scheduler.AddJob(AppUserJob, AppUserJobTri); //把作业,触发器加入调度器。 #endregion
View Code

所有的任务类都要继承 IJob接口 不要对 Execute重写

转载于:https://www.cnblogs.com/xuzai/p/4715275.html

你可能感兴趣的文章
CSS3 animation
查看>>
清华学堂 列车调度(Train)
查看>>
Linux之vi/vim
查看>>
Mvc中表单提交的文本控件的name属性的重要性
查看>>
VBS变量名和标识符的介绍(转)
查看>>
hudson搭建第一步环境配置
查看>>
服务端 Sockt 线程
查看>>
DCL语句
查看>>
Task.Factory.StartNew(f => { }, null); Task.Factory.StartNew(() => { });
查看>>
time stamp in javascript
查看>>
How to wipe silicon to CPU 如何给CPU正确涂抹硅脂
查看>>
微信小程序学习:开发注意点
查看>>
【设计模式】穿什么有这么重要? --- 装饰模式
查看>>
判断页数及切换
查看>>
React-Redux使用方法
查看>>
bzoj 2120 数颜色 带修改莫队
查看>>
NOIP2013华容道 大爆搜
查看>>
openssl evp RSA 加密解密
查看>>
JQMobile引入外部CSS,JS文件
查看>>
简易 bokeh 图像散景效果算法实现
查看>>