quartz作业调度(代码调用)_ad quartz 多任务调度

一、准备工作
1. 从官方网站:http://quartznet.sourceforge.net/ 下载
2. 解压后找到我们需要的dll包,如Quartz.NET-2.1.2bin4.0releaseQuartz

二、编译定时任务dll
1. 新建dll项目
2. 添加quartz发布包里边的Quartz.dll,Common.Logging.dll这两个dll到项目
3. 自己实现的工作类
using System;
using Quartz;
using Common.Logging;
using System.IO;

namespace quartzDemo
{
public classJobExecute_2 : IJob
{
#region IJob 成员
private static int n = 0;
public void Execute(IJobExecutionContext context)
{
ILog log = LogManager.GetLogger(typeof(JobExecute_2));

StreamWriter w = null;
try
{
n++;
w = new StreamWriter("D:\2.txt", true,System.Text.Encoding.UTF8);
w.WriteLine("------------------------------------");
w.WriteLine(n + " JobExecute_1正执行:时间:" + DateTime.Now);
w.WriteLine("------------------------------------");
System.Console.Out.WriteLine(n + " JobExecute_1正执行:时间:" +DateTime.Now);

}
finally
{
if (w != null)
{
quartz作业调度(代码调用)_ad quartz 多任务调度
w.Close();
w.Dispose();
}
}
}

#endregion
}
}

4. 编译出我们定时工作的dll

三、其他项目引用我们的定时工作dll
1.以web程序为例,添加引用定时工作dll和quartz发布包中的Quartz.dll,Common.Logging.dll等三个dll文件
2. 引用代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Quartz.Impl;
using Quartz;
using Quartz.Spi;
using Quartz.Impl.Triggers;

namespace QuartzServer
{
classProgram
{
static void Main(string[] args)
{
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler sched = sf.GetScheduler();

JobKey jobkey = new JobKey("job2", "group2");
IJobDetail job =JobBuilder.Create().WithIdentity(jobkey).Build();

IOperableTrigger trigger = new CronTriggerImpl("trigName","group1", "0/2 * * * * ?");

//不同的计划任务,trigger名称不可以相同!
sched.ScheduleJob(job, trigger);
sched.Start();

}
}
}
四、工作原理
Scheduler ---------主调度程序 --------- Quartz核心

Job---------作业 --------- 服务要做的(业务操作)

Trigger---------触发器 --------- 服务执行条件(何时执行操作)

Listener---------事件监听器 --------- 执行期事件(Job执行前后/Scheduler启动终止暂停时应该做什么,可以挂一些特定事件)

了解了这些概念之后,我们就可以组合这些概念并整理出开发的思路:先利用SchedulerFactory构建一个Scheduler,启动Scheduler,之后构建Job和Trigger,若有作业监听需求,在Listener上添加相应的处理程序,再将Job和Trigger关联后放入Scheduler

五、使用Windows服务定时调用我们的定时任务

把quartz作为独立的Windows任务,然后进行调用详见http://blog.sina.com.cn/s/blog_ad0672d60101ftur.html

  

爱华网本文地址 » http://www.413yy.cn/a/25101012/134938.html

更多阅读

浅析Producer-Consumer设计模式 producer consumer

我气死了都!终于登上博客了!什么破网络!本来都不打算写了!不过这个问题已经总结了有一段时间了,就是生产者消费者模式,我是用professor上课的代码来分析的。下面我就贴上代码吧,在代码中有注释,就是对生产者和消费者的分析吧。我要抓紧时间,

Android 2.3 SD卡挂载流程浅析(三) android 分区挂载流程

这里只是简要的分析SD卡挂载过程中重要的代码调用,并没有深入分析代码,因为这一部分网上已有牛人比较详尽的分析了,后面我会贴出这些参考文章。整个过程从Kernel检测到SD卡插入事件开始,之前的一些硬件中断的触发以及driver的加载这里并

西米客:来自国内的增强型踩脚印系统

Riku服务介绍MyBloglog的成功最主要是体现在了它的踩脚印系统,由此也吸引了国内的一些网站去竟相模仿,比如现已消失无踪的蛙爪、及沉寂多时的博狗等等,不过从目前来看这些服务并没有模仿成功,基本上是来得快,去得也快。而现在,国内又有一

Lua FFI 实战 lua ffi 声明函数指针

Lua FFI 实战 May 19, 2013由来FFI库,是LuaJIT中最重要的一个扩展库。它允许从纯Lua代码调用外部C函数,使用C数据结构。有了它,就不用再像Lua标准math库一样,编写Lua扩展库。把开发者从开发Lua扩展C库(语言/功能绑定库)的繁重工作中释放出

声明:《quartz作业调度(代码调用)_ad quartz 多任务调度》为网友薄荷味美籹分享!如侵犯到您的合法权益请联系我们删除