使用Quartz Job 简单的做一个定时服务
Posted 锡鹏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Quartz Job 简单的做一个定时服务相关的知识,希望对你有一定的参考价值。
第一步:创建一个windows服务
第二步:通过NuGet 安装Quartz (我搜索了Quartz 关键字 安装了 )
第三步 代码部分
任务类 如 多个任务 就多几个类
public class OpenJob : IJob //必须继承IJob接口并实现Execute方法 { public void Execute(IJobExecutionContext context) { // Dictionary<string, string> dic = (Dictionary<string, string>)context.JobDetail.JobDataMap.Get("args");//获取参数 // 开始做自己的东西 } } 使用方法 public partial class Service1 : ServiceBase { IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();//获取调度器 // 表示星期日。 // Sunday = 0, // // 摘要: // 表示星期一。 // Monday = 1, // // 摘要: // 表示星期二。 // Tuesday = 2, // // 摘要: // 表示星期三。 // Wednesday = 3, // // 摘要: // 表示星期四。 Thursday = 4, // // 摘要: // 表示星期五。 // Friday = 5, // // 摘要: // 表示星期六。 // Saturday = 6 int dayOfWeek=0; int hour=1; int minute=0; string triggerName ="xx" ; string triggerGroupName="xxxx"; protected override void OnStart(string[] args) { Dictionary<string, string> args = new Dictionary<string, string>();//定义任务的字典型参数 供任务使用 var job =new OpenJob(); IJobDetail open_job = JobBuilder.Create(job .GetType()).WithIdentity(jobName, jobGroupName).Build(); open_job.JobDataMap.Put("args", args);//添加参数 给任务 ITrigger open_trigger = TriggerBuilder.Create().WithSchedule(CronScheduleBuilder.WeeklyOnDayAndHourAndMinute((DayOfWeek)dayOfWeek, hour, minute)).WithIdentity(triggerName, triggerGroupName).Build(); scheduler.ScheduleJob(open_job, open_trigger); }}
这样就定义了一个 每周日凌晨1点0分 执行一次的 一个任务
关闭调度器方法
scheduler.Shutdown();
基本使用
以上是关于使用Quartz Job 简单的做一个定时服务的主要内容,如果未能解决你的问题,请参考以下文章