Quartz.net2.2初体验
来源:互联网 发布:广州市知用中学分数线 编辑:程序博客网 时间:2024/04/28 17:09
简介:Quartz.net是一个开源的作用调度框架,非常强大,能够通过简单的配置帮助我们定时具体的操作。相对于我们用的线程里面while(true)然后sleep来执行某个操作,应该算的上是高端,大气,上档次了。目前最新版本是2.2,新的版本里面有些方法名发生了变化,从之前的版本用过来的人应该会有体会.这里我使用最常用,也是最稳定的方式--Windows服务里面使用Quartz.net,并且使用配置的方式来设置触发器。
步骤:
1.定义使用的job:就是我们具体要执行的操作.
namespace Quartz.MyJobs{ public class HelloWorldJob : IJob { #region IJob 成员 public void Execute(IJobExecutionContext context) { //LogHelper.LogHelper.Log("执行HelloWorld Job"); String path = AppDomain.CurrentDomain.BaseDirectory + "Job\\"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } File.AppendAllText(path + "job.txt", DateTime.Now + "\n"); } #endregion }}
有了job,之后就在配置里面以Cron表达式的方式来设置Trigger和job配置节(quartz_jobs.xml)
<?xml version="1.0" encoding="UTF-8"?><!-- This file contains job definitions in schema version 2.0 format --><job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0"> <processing-directives> <overwrite-existing-data>true</overwrite-existing-data> </processing-directives> <schedule> <job> <name>HelloWorldJob</name> <group>sampleGroup</group> <description>Sample job for Quartz Server</description> <job-type>Quartz.MyJobs.HelloWorldJob, Quartz.MyJobs</job-type> <durable>true</durable> <recover>false</recover> </job> <trigger> <cron> <name>sampleSimpleTrigger</name> <group>sampleSimpleGroup</group> <description>Simple trigger to simply fire sample job</description> <job-name>HelloWorldJob</job-name> <job-group>sampleGroup</job-group> <cron-expression>0/3 * * * * ?</cron-expression> <!--每3秒中执行一次--> </cron> </trigger> </schedule></job-scheduling-data>
还有有一个quartz.config配置文件,里面有这样一行:quartz.plugin.xml.fileNames = ~/quartz_jobs.xml(这里的文件对应我们上面配置文件夹)。
现在job和trigger已经定义好了,接下来我们在Windows服务里面声明一个调度器把两者结合起来就OK了。
namespace Quartz.WinService{ partial class MyQuartzService : ServiceBase { IScheduler sched = null; public MyQuartzService() { InitializeComponent(); ISchedulerFactory factory = new StdSchedulerFactory(); sched = factory.GetScheduler(); } protected override void OnStart(string[] args) { sched.Start(); LogHelper.LogHelper.Log("服务启动..."); } protected override void OnStop() { sched.Shutdown(); LogHelper.LogHelper.Log("服务停止"); } }}
到这里就结束了。如果你的项目里面需要定时执行某个操作,使用Quartz.net绝对是非常棒的选择。
关于Cron表达式的了解可以点击这里
https://github.com/quartznet/quartznet
0 0
- Quartz.net2.2初体验
- Quartz.net2.2初体验
- 调度框架Quartz,初体验
- Java定时器Quartz初体验
- Quartz 任务调度:初体验
- 体验.NET2.0的优雅之Provider应用
- ASP.Net2.0页面无刷新境界体验
- SilverLight 2 初体验
- SilverLight 2 初体验
- android-初体验2
- 算法初体验-2
- Dagger 2 初体验
- Yii 2 初体验
- 堆栈初体验2
- Construct 2初体验
- quartz详解2:quartz由浅入深
- quartz详解2:quartz由浅入深
- quartz详解2:quartz由浅入深
- Esper专栏介绍
- 添加时件监听器
- spring框架学习(六)AOP
- 数码管 定时器 去抖动
- window
- Quartz.net2.2初体验
- url地址前设置icon
- matasploit+shellcode编码学习
- 【python】如何在电脑上调试android上的python代码
- 弹出对话框
- What is IP Routing?
- Processes and Threads life cycle生命周期
- Numpy学习笔记1--genfromtxt
- 黑马程序员--Java基础--13反射