使用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 简单的做一个定时服务的主要内容,如果未能解决你的问题,请参考以下文章

Quartz.NET总结Quartz 远程调度

quartz-job实现实时或定时发送短信任务

Quartz使用

quartz 定时任务的总结

spring-boot-route(二十一)quartz实现动态定时任务

Quartz定时任务框架使用教程详解