定时作业框架Quartz.net的简单应用

原创 2015年07月10日 12:18:30

         在许多应用场景下我们都希望定时执行一些事务,比较常见的是维护数据库:定时生成汇总数据,定时复制插入数据等。其他特定场景下都存在这些定时任务。如果涉及数据库维护的定时任务,我们尚可以使用数据库自带的数据库代理来实现定时批处理。面对其他类型的定时任务,往往只能通过在服务器上编写windows进程等手段来简介实现。上述这些方法存在下列缺点:

         1.需要学习特定的语言或API

          使用SQLServer代理服务来实现定时批处理,需要编写较为复杂的SQL语句。对于许多人来说是一个不小的挑战。如果开发团队中有DBA的另说。但一般小型团队都是身兼数职,不太可能有专业DBA去做维护。编写windows服务也需要学习特定的API。

        2.与运行环境发生了紧耦合

         在大多数情况下,我们不希望应用程序与运行环境发生太多的耦合。特别是很多时候我们对web服务器并没有足够的权限。或者web服务器并不是IIS,而是某个虚拟环境云平台之类,根本就不存在windows服务。这在迁移的时候就会出现很大问题。

        Quartz.net就是用来解决这些问题的。它是基于.NET框架的。我们不需要编写任何非托管代码。而且整个API和C#语言是紧密集成的,使用了C#中的一些新特性如Lambda表达式,流式API等。使用简单,功能异常强大。我们可以用C#代码来编写各种定时任务,简单方便。足以满足一般的常见任务。是小型团队杀人越货之利器。当然如果您人多,预算也多,请出门左拐不送。

      Quartz.net框架包含三个基本部分:调度器、任务和触发器。

      代码如下备查:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Quartz;
using Quartz.Core;
using Quartz.Impl;
using Common.Logging;
using Common.Logging.Factory;
using Common.Logging.Configuration;

namespace QuartzStudy
{
    class Program
    {
        static void Main(string[] args)
        {
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
            scheduler.Start();

            IJobDetail job1 = JobBuilder.Create<HelloJob>()  //创建一个作业 
               .Build();

            ITrigger trigger1 = TriggerBuilder.Create()
                                       .WithIdentity("触发器名称", "触发器组")
                                       .StartNow()                        //现在开始 
                                       .WithSimpleSchedule(x => x         //触发时间,5秒一次。 
                                           .WithIntervalInSeconds(5)
                                           .RepeatForever())              //不间断重复执行 
                                       .Build();

            scheduler.ScheduleJob(job1, trigger1);      //把作业,触发器加入调度器。
        }
    }

    public class HelloJob : IJob
    {
        public void Execute(IJobExecutionContext context)
        {
            Console.WriteLine("作业执行!");
        }
    } 
}


相关文章推荐

WinForm和WebForm 对Quartz定时器使用

Quartz是第三方提供的定时调度框架,其官方地址http://www.quartz-scheduler.org/ 同样,安装惯例,该篇同样也是从项目中mark出来,方便对这个技术的惯例,好了废话不说...

C# 定时任务 调度框架 WebWork (Quartz.NET) Web版的Windows服务

说起这个,还是觉得很自豪的(另外这里还要特别感谢Nick同学),至少目前我没有见到有这样现成框架,这个东西主要是用来调度任务的,就是根据时间定时执行一个任务,而这个任务你可以用C# 写成一个一个的dl...

Quartz.Net的使用(简单配置方法)定时任务框架

Quartz.Net是一个定时任务框架,可以实现异常灵活的定时任务,开发人员只要编写少量的代码就可以实现“每隔1小时执行”、“每天22点执行”、“每月18日的下午执行8次”等各种定时任务。 Quar...

quartz 2.1.2 for .net 作业调度框架

  • 2014年10月17日 13:43
  • 725KB
  • 下载

Quartz.NET作业调度框架详解

Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不...

Quartz.NET(作业调度框架) 学习笔记(三)【Cron 表达式】

有这么几个问题? 1,  每天的2点到6点之间每15分钟对服务器上某个文件夹进行搜索 2,  每周的周5的8点45分对数据库进行备份 3,  每月的最后一天8点创建销售报表 4,  我要在,每...

开源的作业调度框架 - Quartz.NET

开源的作业调度框架 - Quartz.NET Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winfo...
  • e_wsq
  • e_wsq
  • 2012年01月09日 16:33
  • 557

QUARTZ.NET 一个定时任务框架

Quartz.NET-1.0.3文件下载地址 (这是老版本了,现在已经有新版本了。用法好像不一样了) 首先要添加Quartz.NET-1.0.3 文件下面的  bin/3.5/Release/Qua...

简单的.NET三层框架的实现(学生作业管理系统)

三层架构,也有人叫做三层结构,是一种软件架构。 三层架构主要包括了表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这样的方式将软件开发进行分层,每层之间的分工是相对的比较明确的,而且很...

.net定时任务(作业)-简单说

我要给大家介绍一个开源的作业调度框架Quartz.NET, 有一些工作需要定时轮询数据库同步,定时邮件通知,定时处理数据 可以选择Quartz.NET。 快速搭建一个Quartz 1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:定时作业框架Quartz.net的简单应用
举报原因:
原因补充:

(最多只允许输入30个字)