不需要配置文件就可以使用Quartz.NET的方法
2012-02-04 19:17
796 查看
我们只是想简单使用一下,取代原来在Windows中使用的任务计划,每天定时发两封提醒邮件,实在不想在一堆配置中挣扎。
先简单介绍一下Quartz.NET:
Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。
以上简介内容引用自leeolevis写的“Quartz.NET作业调度框架详解”。
下面我们用几行代码搞定它。
1. 定义要执行的任务(实现Quartz.IJob接口),代码如下:
public class ShiftNotify : IJob {public void Execute(JobExecutionContext context){//在此执行计划任务//比如:“时间不早了,该起床啦!”}}
2. 将要计划执行的任务加入到调度器中。
完成这一步,需要三样东西:调度器(IScheduler)、任务(JobDetail)、触发器(Trigger)。
由于是在Web应用程序中进行调度,代码需要写在Global.asax.cs的Application_Start()方法中。
a) 创建一个调度器(职责:如果触发器设定的条件满足,就让预先定义好的任务干活):ISchedulerFactory factory = new StdSchedulerFactory();IScheduler scheduler = factory.GetScheduler();scheduler.Start();
b) 创建一个任务(第1步已经定义好的任务,真正干活的):
JobDetail job = new JobDetail("MyJob", typeof(ShiftNotify));
c) 创建一个触发器(从什么时间开始,多长时间触发一次):
Trigger trigger = TriggerUtils.MakeMinutelyTrigger(1);
trigger.StartTimeUtc = TriggerUtils.GetEvenMinuteDate(DateTime.UtcNow);
trigger.Name = "ShiftNotify";
第一行代码设置的是1分钟触发一次。
第二行代码设置的是开始时间。之前遇到的问题就出现在这里。将DateTime.UtcNow写成了DateTime.Now,怎么也触发不了。
d) 将任务与触发器添加到调度器中:
scheduler.ScheduleJob(job, trigger);
好了,完工!
不需要任何配置文件,Quartz.NET就按你的指令,定时为你服务了。
先简单介绍一下Quartz.NET:
Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。
以上简介内容引用自leeolevis写的“Quartz.NET作业调度框架详解”。
下面我们用几行代码搞定它。
1. 定义要执行的任务(实现Quartz.IJob接口),代码如下:
public class ShiftNotify : IJob {public void Execute(JobExecutionContext context){//在此执行计划任务//比如:“时间不早了,该起床啦!”}}
2. 将要计划执行的任务加入到调度器中。
完成这一步,需要三样东西:调度器(IScheduler)、任务(JobDetail)、触发器(Trigger)。
由于是在Web应用程序中进行调度,代码需要写在Global.asax.cs的Application_Start()方法中。
a) 创建一个调度器(职责:如果触发器设定的条件满足,就让预先定义好的任务干活):ISchedulerFactory factory = new StdSchedulerFactory();IScheduler scheduler = factory.GetScheduler();scheduler.Start();
b) 创建一个任务(第1步已经定义好的任务,真正干活的):
JobDetail job = new JobDetail("MyJob", typeof(ShiftNotify));
c) 创建一个触发器(从什么时间开始,多长时间触发一次):
Trigger trigger = TriggerUtils.MakeMinutelyTrigger(1);
trigger.StartTimeUtc = TriggerUtils.GetEvenMinuteDate(DateTime.UtcNow);
trigger.Name = "ShiftNotify";
第一行代码设置的是1分钟触发一次。
第二行代码设置的是开始时间。之前遇到的问题就出现在这里。将DateTime.UtcNow写成了DateTime.Now,怎么也触发不了。
d) 将任务与触发器添加到调度器中:
scheduler.ScheduleJob(job, trigger);
好了,完工!
不需要任何配置文件,Quartz.NET就按你的指令,定时为你服务了。
相关文章推荐
- Quartz.Net的使用(简单配置方法)定时任务框架
- ASP.NET Web.config配置文件的基本使用方法
- [BAT][JAVA]定时任务之-Quartz使用篇(通过这个配置可以知道在做Quartz的时候需要的jar文件/Cron表达式使用语法/常用Cron表达式)
- ASP.NET Web.config配置文件的基本使用方法
- Spring中使用事务搭建转账环境方法二 相对简便的注解方法 ——配置文件注入对象属性需要setter方法 注解方法,不需要生成setter方法
- Quartz.Net的使用(简单配置方法)定时任务框架
- 黑马程序员_ADO.Net(配置文件的两种写法与使用方法,手动编写SqlHelper类)
- 用vb.net读取INI配置文件的方法,使用API
- 轻装上阵:无配置文件情况下使用Quartz.NET
- ASP.NET core Web中使用appsettings.json配置文件的方法
- [转]ASP.NET Web.config配置文件的基本使用方法
- 使用Ajax.net遇到的问题-使用会话时提示错误"只有在配置文件或 Page 指令中将启用会话状态设置为真时,才可以使用会话状态
- 无配置文件情况下使用Quartz.NET
- Spring中使用事务搭建转账环境方法二 相对简便的注解方法 ——配置文件注入对象属性需要setter方法 注解方法,不需要生成setter方法
- Quartz.Net的使用(简单配置方法)定时任务框架
- 轻装上阵:无配置文件情况下使用Quartz.NET
- 轻装上阵:无配置文件情况下使用Quartz.NET
- .Net Reomting 在WEB客户端里使用配置文件方法
- Quartz.Net的使用(简单配置方法)定时任务框架
- Asp.net Mvc Framework可以在Controller中使用的Url.Action方法