在网上看到别贴的话,要想成为技术高手就需要多多的看看别人的代码,理解别的思想,看开源项目就是一个不错的选择。说实话我太想成为技术高手,但是自己悟性太差,半天弄不明白理解不了别人写的代码,为了提高自己的阅读能力,希望自己坚持看完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);
- }
- }
- }
相关推荐
1) 平台基于quartz.net进行任务调度功能开发,采用C#代码编写, 支持corn表达式和第三方自定义的corn表达式扩展。 2) 架构以插件形式开发,具有良好的功能扩展性,稳定性,简单性,便于第三方开发人员进一步进行功能...
2. 定时任务:利用.NET 2.0框架提供的Timer类或Quartz.NET等第三方库,设置定时任务来周期性执行ping检查。 3. ICMP通信:使用.NET Framework的System.Net.NetworkInformation命名空间中的Ping类来发送和接收ICMP...
7. **Quartz.net**:Quartz.net是一个开源作业调度框架,用于计划和执行长期运行的任务。它也遵循Apache License 2.0,源码在GitHub(https://github.com/quartznet/quartznet)上。 8. **AutoMapper**:AutoMapper...
搜索引擎技术:Lucene.Net、多线程开发、爬虫技术、网页分析、正则表达式、Log4Net日志框架、Quartz.Net定时作业调度。 大型互联网开发技术:代码生成、网页静态化、基于JQuery的Web2.0页面开发、AJAX、SEO、网站...
选择您的第一个域,并根据您当前的外部IP更新其@ A记录。 根据Loopias的“ forbereda-doman-for-vart-dyndns-stod”,这应该是正确的。 如果有人对此有疑问,我将对其进行更新,以便轻松选择要更新的索引。 根据...
5. **定时触发**:使用计划任务库(如Windows Task Scheduler或第三方库如Quartz.NET)来安排任务每两小时运行一次。这可能涉及注册一个回调函数,该函数在指定的时间间隔后调用Web API。 6. **错误处理**:包含...
不过,这也意味着如果你有大量并发的定时任务,可能需要考虑使用更高级的调度策略,比如`Quartz.NET`或者`Hangfire`等第三方库。 总的来说,`System.Timer`是C#中实现定时任务的基础工具,它简单易用,适合大部分...
ABP框架支持多种第三方库和服务的集成,比如Hangfire和Quartz用于定时任务和后台作业,SignalR用于实时通信等,大大增强了框架的功能性和实用性。 #### 五、ABP框架的应用案例 ABP框架由于其高度的灵活性和可扩展...
7. **后台任务调度**:可能需要定时任务来处理一些周期性工作,如清理过期数据、统计分析等,可以使用Quartz.NET或其他调度框架实现。 8. **系统集成**:挂号系统往往需要与医院的HIS(医院信息系统)、EMR(电子...