• 微软原版系统

  • 一键重装系统

  • 纯净系统

  • 在线技术客服

魔法猪系统重装大师 一键在线制作启动 U 盘 PE 系统 用一键重装的魔法拯救失去灵魂的系统
当前位置:首页 > 教程 > 电脑教程

不需要配置文件就可以使用Quartz.NET的方法

时间:2015年04月02日 15:36:06    来源:魔法猪系统重装大师官网    人气:9763

写博客写上瘾了,怎么办?

本来没打算写这篇随笔,但是今天突然解决了Quartz.NET的一个问题,实在想分享一下。网上搜索到的一堆Quartz.NET文章,都是谈如何通过配置文件来使用Quartz.NET。

我们只是想简单使用一下,取代原来在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,的,写
栏目:电脑教程 阅读:1000 2023/12/27
Win7教程 更多>>
U盘教程 更多>>
Win10教程 更多>>
魔法猪学院 更多>>

Copyright © 2015-2023 魔法猪 魔法猪系统重装大师

本站发布的系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件。

在线客服 查看微信 返回顶部