在网上看到别贴的话,要想成为技术高手就需要多多的看看别人的代码,理解别的思想,看开源项目就是一个不错的选择。说实话我太想成为技术高手,但是自己悟性太差,半天弄不明白理解不了别人写的代码,为了提高自己的阅读能力,希望自己坚持看完quartz2.0这个开源的项目,顺便也锻炼一下自己写博客的水平。
简单介绍:官网:http://quartznet.sourceforge.net/
Quartz有时钟的意思,也特别贴切这个开源的任务调度项目.
官方上说Quartz.NET是一个全功能的开源作业调度系统,从最小的应用程序,可用于大型企业系统。
个人简单理解Quartz就是定时或者指定时间执行自己写的job,既然是自己的任务,哪肯定是写的了。
用法功能:先简单的看个例子,看下Quartz是怎么执行自己写的job的。
1.首先呢先定义自己的job,只需要继承Quartz中的IJob接口就好,代码相当简单,没必要多说了:
public classMyJob :IJob
{
public void Execute(IJobExecutionContextcontext)
{
Console.Write("我执行了,时间:{0}",DateTime.Now);
}
}
2.job有了,我想用Quartz执行它,怎么弄呢?
static void Main(string[] args)
{
//调度器
ISchedulerFactorysf =newStdSchedulerFactory();
ISchedulersched = sf.GetScheduler();
//job详情
IJobDetailmyJob = JobBuilder.Create<MyJob>()
.WithIdentity("job1","group1")
.Build();
//触发器
ITriggertrigger = TriggerBuilder.Create()
.WithIdentity("trigger1","group1")
.StartNow()//立即执行
.Build();
//关联job和触发器
sched.ScheduleJob(myJob, trigger);
//执行
sched.Start();
Console.Read();
//关掉
sched.Shutdown(true);
}
3.运行看下结果,果然执行了,哈哈。
结语:不管怎么样,反正今天了解到了Quartz是个什么东东,怎么写下简单的代码用起来,收获不多,继续努力,同样疑问也不少,调度器是啥,触发器是……
代码:
- using System;
- using Quartz.Impl;
- namespace Quartz.Demo
- {
- class Program
- {
- static void Main(string[] args)
- {
- //调度器
- ISchedulerFactory sf = new StdSchedulerFactory();
- IScheduler sched = sf.GetScheduler();
- //job详情,注意MyJob
- IJobDetail myJob = JobBuilder.Create<MyJob>()
- .WithIdentity("job1", "group1")
- .Build();
- //触发器
- ITrigger trigger = TriggerBuilder.Create()
- .WithIdentity("trigger1", "group1")
- .StartNow()//立即执行
- .Build();
- //关联job和触发器
- sched.ScheduleJob(myJob, trigger);
- //执行
- sched.Start();
- Console.Read();
- //关调
- sched.Shutdown(true);
- }
- }
- public class MyJob : IJob
- {
- public void Execute(IJobExecutionContext context)
- {
- Console.Write("我执行了,时间:{0}", DateTime.Now);
- }
- }
- }