博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Quartz-基础
阅读量:4625 次
发布时间:2019-06-09

本文共 1408 字,大约阅读时间需要 4 分钟。

Quartz 是个开源的作业调度框架,为应用程序中进行作业调度提供了简单却强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz 的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。虽然可以通过属性文件(在属性文件中可以指定 JDBC 事务的数据源、全局作业和/或触发器侦听器、插件、线程池,以及更多)配置 Quartz,但它根本没有与应用程序服务器的上下文或引用集成在一起。结果就是作业不能访问 Web 服务器的内部函数;例如,在使用 WebSphere 应用服务器时,由 Quartz 调度的作业并不能影响服务器的动态缓存和数据源。Quartz 作业调度框架所提供的 API 在两方面都表现极佳:既全面强大,又易于使用。Quartz 可以用于简单的作业触发,也可以用于复杂的 JDBC 持久的作业存储和执行。

1. Quartz核心概念:作业和触发器

Quartz 调度包的两个基本单元是作业和触发器。作业 是能够调度的可执行任务,触发器 提供了对作业的调度。虽然这两个实体很容易合在一起,但在 Quartz 中将它们分离开来是有原因的,而且也很有益处。

通过把要执行的工作与它的调度分开,Quartz 允许在不丢失作业本身或作业的上下文的情况下,修改调度触发器。而且,任何单个的作业都可以有多个触发器与其关联。

2. Quartz使用示例:

Quartz基本操作步骤:

  1. Create a SchedulerFactory
  2. Create a Scheduler
  3. Create a JobDetail
  4. Create a Trigger
  5. Schedule the Job (with the detail and the trigger)

注:需要引用:Quatz.dll和CommonLogging.dll

ISchedulerFactory factory = new StdSchedulerFactory();IScheduler scheduler = factory.GetScheduler();JobDetail job = new JobDetail("testjob", "jobgroup", typeof(ShifNotify));Trigger tigger = TriggerUtils.MakeSecondlyTrigger(2);tigger.StartTime = DateTime.Now;tigger.Name = "ShiftNotify";scheduler.ScheduleJob(job, tigger);scheduler.Start();Thread.Sleep(1000*6);sched.Shutdown();

其中ShifNotify基本定义为:

public class ShifNotify : IJob{    public void Execute(JobExecutionContext context)    {    Console.WriteLine("Nofity executed!");  }}

 

参考:

转载于:https://www.cnblogs.com/virtual/articles/3233229.html

你可能感兴趣的文章
10款免费且开源的项目管理工具
查看>>
thinkphp数据查询方法总结select ,find,getField,query
查看>>
Spring Boot控制上传文件大小
查看>>
Wannafly挑战赛22 A计数器(裴蜀定理 gcd)
查看>>
day22作业详解
查看>>
Codeforces 10D
查看>>
charles抓包
查看>>
新手上路注意事项及驾车技巧
查看>>
关于Block汇总
查看>>
freemarker 学习一 入门小例子
查看>>
获取bing每日图片
查看>>
图解Docker容器和镜像
查看>>
android studio gradle 两种更新方法更新
查看>>
Java语言的垃圾回收机制
查看>>
Android中绘制圆角矩形图片及任意形状图片
查看>>
2018-2019-2 20175328 《Java程序设计》第十周学习总结
查看>>
SqlBulkCopy简单封装,让批量插入更方便
查看>>
mysql 在cento下源码安装
查看>>
测试用例使用传统excel还是思维导图(Xmind、MindManager等)?
查看>>
【Python学习之六】高阶函数2(map、reduce、filter、sorted)
查看>>