定时作业框架Quartz.net的简单应用
来源:互联网 发布:淘宝买家延长收货几天 编辑:程序博客网 时间:2024/05/21 00:21
在许多应用场景下我们都希望定时执行一些事务,比较常见的是维护数据库:定时生成汇总数据,定时复制插入数据等。其他特定场景下都存在这些定时任务。如果涉及数据库维护的定时任务,我们尚可以使用数据库自带的数据库代理来实现定时批处理。面对其他类型的定时任务,往往只能通过在服务器上编写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("作业执行!"); } } }
- 定时作业框架Quartz.net的简单应用
- java定时框架Quartz的简单应用
- Quartz 定时 作业调度框架
- Quartz.Net定时任务框架,实现灵活的定时任务
- Quartz.Net的使用(简单配置方法)定时任务框架
- Quartz.Net的使用(简单配置方法)定时任务框架
- Quartz.Net的使用(简单配置方法)定时任务框架
- Quartz.Net的使用(简单配置方法)定时任务框架
- Spring--简单使用quartz实现定时作业
- Spring--简单使用quartz实现定时作业
- Spring--简单使用quartz实现定时作业
- Spring--简单使用quartz实现定时作业
- Spring--简单使用quartz实现定时作业
- Spring -- 简单使用quartz实现定时作业
- Spring--简单使用quartz实现定时作业
- Spring--简单使用quartz实现定时作业
- 简单的quartz定时任务的web应用
- 开源的作业调度框架 - Quartz.NET
- json基础学习
- 享元设计模式 -- 线程的不安全性
- linux grep命令详解
- 改变const限定的“常量”
- 简析递归
- 定时作业框架Quartz.net的简单应用
- linux shell 管道命令(pipe)使用及与shell重定向区别
- Python操作MySQL数据库
- 游戏性是什么:如何更好地创作与体验游戏
- iOS 开发中如何显示网络图片
- 使用transform和transition制作CSS3动画
- 欢迎使用CSDN-markdown编辑器
- 面向对象(下)
- 面试技巧之单面