Quartz.NET simple_demo

时间:2023-03-10 04:28:00
Quartz.NET simple_demo

Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。 Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。

使用时需要引用:Quartz.dll

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace demo1_querz.net
{
class Program
{
static void Main(string[] args)
{
new SimpleExample1().Run();
Console.Read();
}
}
}

配置简单定时任务

using Quartz;
using Quartz.Impl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace demo1_querz.net
{
class SimpleExample1:IExample
{
public string Name
{
get { return "Simple Task One"; }
} public virtual void Run()
{ // First we must get a reference to a scheduler
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler sched = sf.GetScheduler();
// job 1 will run every 20 seconds
IJobDetail job = JobBuilder.Create<SimpleJobOne>()
.WithIdentity("job1", "group1")
.Build(); ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.WithCronSchedule("10 0/1 * * * ? ")
.Build();
DateTimeOffset ft = sched.ScheduleJob(job, trigger);
sched.Start(); }
}
}
using Quartz;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace demo1_querz.net
{
public class SimpleJobOne:IJob
{
//需要继承IJob
public virtual void Execute(IJobExecutionContext context)
{
JobKey jobkey = context.JobDetail.Key;
new SendMsg().FuRun();
}
}
}

需要执行的方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace demo1_querz.net
{
public class SendMsg
{
public void FuRun()
{
Console.WriteLine("Prefrom Simple Task One time as "+DateTime.Now.ToString());
}
}
}

运行结果为:每分钟执行一次 Simple Task One

Quartz.NET simple_demo

参考

官方学习文档:http://www.quartz-scheduler.net/documentation/index.html

使用实例介绍:http://www.quartz-scheduler.net/documentation/quartz-2.x/quick-start.html