1.介绍
Quartz是功能强大的开源作业调度库,几乎可以集成到任何Java应用程序中-从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数以万计,数以万计的工作。任务定义为标准Java组件的作业,它们实际上可以执行您可以对其执行的任何编程操作。Quartz Scheduler包含许多企业级功能,例如对JTA事务和集群的支持。
Quartz是免费使用的,并根据Apache 2.0许可获得许可。
Java网址:http://www.quartz-scheduler.org/
.NET网址:https://www.quartz-scheduler.net/
2.简单使用
nuget => Install-Package Quartz
class Program { async static Task Main(string[] args) { IScheduler scheduler =await StdSchedulerFactory.GetDefaultScheduler(); await scheduler.Start(); var job = JobBuilder.CreateForAsync<FirstJob>().Build(); //trigger WithIntervalInSeconds(1)间隔1m RepeatForever重复 var trigger = TriggerBuilder.Create().WithSimpleSchedule(x => x.WithIntervalInSeconds(1).RepeatForever()).Build(); await scheduler.ScheduleJob(job, trigger); Console.Read(); } }
public class FirstJob : IJob { public async Task Execute(IJobExecutionContext context) { await Task.Run(() => { Console.WriteLine("Hello World !"); }); } }
3.对比Windows计划任务和Quartz的区别
1.持久化数据库,SqlLite、MongoDB、Redis、SqlServer、MySql等 Windows计划任务做不到
2.集群支持,双机热备 Windows计划任务做不到
3.Trigger的时间灵活控制,Windows计划任务可以做到
4.可视化的管理界面 Windows Scheduler采用CS模式 Quartz采用Web模式