0
点赞
收藏
分享

微信扫一扫

定时任务框架Quartz.net

流沙雨帘 2022-02-17 阅读 98


Quartz.Net

1、Quartz.Net是一个从Java版的Quartz移植过来的定时任务框架,可以实现异常灵活的定时任务,开发人员只要编写少量的代码就可以实现“每隔1小时执行”、“每天22点执行”、“每月18号的下午执行8次”等各种定时任务。

2、基本概念

Quartz.NEt中的概念:计划者(IScheduler),工作(IJob),触发器(Trigger)。给计划者一个工作(Job),让他在Trigger(什么条件下做这件事)触发的条件下执行这个工作(Job)

将要定时执行的任务的代码写到实现IJob接口的Execute方法中即可,时间到来的时候Execute方法会被调用。

创建一个控制台应用程序来进行测试:

首先在项目中添加引用,在程序包管理器控制台下安装Quartz,输入以下命令进行安装:

Install-Package Quartz -Version 2.5.0

添加一个类来实现IJob接口,实现代码如下:

using Quartz;//添加引用
using System;

namespace ZSZ.test
{
public class TestJob : IJob
{
public void Execute(IJobExecutionContext context)
{
Console.WriteLine("任务完成" + DateTime.Now);
}
}
}

把下面的代码写到程序启动的时候,初始化一次即可。

using log4net;
using Quartz;//添加引用
using Quartz.Impl;//添加引用
using Quartz.Spi;//添加引用
using System;

namespace ZSZ.test
{
public class Program
{
public static void Main(string[] args)
{
ILog log = LogManager.GetLogger(typeof(Program));//日志 传入类名
IScheduler sched = new StdSchedulerFactory().GetScheduler();
JobDetailImpl jdBossReport = new JobDetailImpl("jdTest", typeof(TestJob));
IMutableTrigger triggerBossReport = CronScheduleBuilder.DailyAtHourAndMinute(17, 14).Build();//每天 23:45 执行一次
triggerBossReport.Key = new TriggerKey("triggerTest");
sched.ScheduleJob(jdBossReport, triggerBossReport);
sched.Start();
}
}
}

以上实现的是每天固定时间在17:14进行提醒,测试成功

定时任务框架Quartz.net_程序启动


举报

相关推荐

0 条评论