`

基于quartz任务调度组件的使用

阅读更多
2.0版本的aop框架中集成了quartz任务调度组件,该组件包含三部分:
1. 任务管理组件: 用来启动和停止任务调度引擎,管理任务(新增,启动,修改,停止,挂起/继续,删除任务)
org.frameworkset.task.TaskService

2. 任务管理服务组件:按分组模式管理所有的job任务,并从相关的数据源加载作业任务
所有的任务管理组件都从抽象类org.frameworkset.task. ScheduleService继承
3. 任务配置文件:用来配置不同的作业服务和具体的作业job。对应的配置文件为:
/bbossaop/resources/org/frameworkset/task/quarts-task.xml
下面分别举例说明:

15.1 任务管理组件
任务管理控件:用来启动和停止任务调度引擎,管理任务(启动,修改,停止,删除任务)
org.frameworkset.task.TaskService
启动任务引擎
TaskService.getTaskService().startService();
停止任务引擎
TaskService.getTaskService().stopService();
删除任务
TaskService.getTaskService().deleteJob(String jobname, String groupid)
暂停任务
TaskService.getTaskService().pauseJob(String jobname, String groupid)
继续任务
TaskService.getTaskService().resumeJob(String name, String groupid)
新增和启动任务
TaskService.getTaskService().startExecuteJob(String groupid, SchedulejobInfo jobInfo)
更新任务
TaskService.getTaskService().updateExecuteJob(String groupid, SchedulejobInfo jobInfo)

15.2 任务管理服务组件
所有的任务管理组件都从抽象类org.frameworkset.task. ScheduleService继承,定义了一下抽象方法:
public abstract void startService(Scheduler scheduler) throws ScheduleServiceException;
public  abstract void startExecuteJob(Scheduler scheduler,SchedulejobInfo jobInfo);
public  abstract void updateJob(Scheduler scheduler,SchedulejobInfo jobInfo);
public  abstract void updateTriger(Scheduler scheduler,SchedulejobInfo jobInfo);
public  abstract void updateJobAndTriger(Scheduler scheduler, SchedulejobInfo jobInfo);
系统中默认提供的任务管理组件
org.frameworkset.task.DefaultScheduleService,用来加载系统中默认的静态的任务,可以配置多个作业任务
如果用户需要动态管理自己的作业任务,那么可以编写自己的ScheduleService,实现org.frameworkset.task. ScheduleService类的抽象方法:
public class DemoScheduleService extends ScheduleService {

@Override
public void startExecuteJob(Scheduler scheduler, SchedulejobInfo jobInfo) {
//执行新定义的任务

}

@Override
public void startService(Scheduler scheduler)
throws ScheduleServiceException {
//系统启动时,从资源库中获取所有的已经存在的任务,并加载到scheduler引擎中。

}

@Override
public void updateJob(Scheduler scheduler, SchedulejobInfo jobInfo) {
更新一个已经加载的作业任务

}

@Override
public void updateJobAndTriger(Scheduler scheduler, SchedulejobInfo jobInfo) {
更新作业任务,并触发任务的执行

}

@Override
public void updateTriger(Scheduler scheduler, SchedulejobInfo jobInfo) {
更新任务触发器

}

}

编写好自定义的任务服务组件后就可以将其配置到quarts-task.xml文件中了,例如:
<properties>
<property name="taskconfig" enable="true">
<list>
<property name="demo任务执行器" taskid="DemoScheduleService"
class="org.frameworkset.task.DemoScheduleService" used="true"></property>
</list>
</property>
</properties>
必须指定唯一的taskid属性,use属性用来设置该任务组件是否生效。

15.3 任务管理配置文件
一个简单的配置文件
/bbossaop/resources/org/frameworkset/task/quarts-task.xml的内容如下:

<properties>
<property name="taskconfig" enable="true">
<list>
<property name="定时任务执行器" taskid="default"
class="org.frameworkset.task.DefaultScheduleService" used="true">
<!--
可执行的任务项
属性说明:
name:任务项名称
id:任务项标识
action:具体的任务执行处理程序,实现org.frameworkset.task.Execute接口
cron_time: cron格式的时间表达式,用来管理任务执行的生命周期,相关的规则请参照日期管理控件quartz的说明文档
used 是否使用
true 加载,缺省值
false 不加载  
子元素说明:
Map 和property:设置任务执行的参数,name标识参数名称,value指定参数的值
-->
<list>
<property name="workbroker" jobid="workbroker"
class="org.frameworkset.task.TestJob"
cronb_time="0 56 14 * * ?" used="true">
<map>
<property name="send_count" value="2" />
</map>
</property>
</list>
</property>
</list>
</property>
</properties>
说明:
org.frameworkset.task.DefaultScheduleService是系统中默认提供的任务管理组件,用来加载系统中默认的静态的任务,可以配置多个,例如:
<property name="workbroker" jobid="workbroker"
action="org.frameworkset.task.TestJob"
cronb_time="0 56 14 * * ?" used="true">
<map>
<property name="send_count" value="2" />
</map>
</property>
属性说明:
Taskid:用来区分任务组,可以作为任务组的唯一标识,系统中通过Taskid和jobid来区分唯一的一个作业任务,TaskService组件的很多方法中都有groupid和jobname两个参数,taskid就对应于groupid参数,jobid对应于jobname参数。
Name 任务的名称
Jobid 任务的标识
Action任务执行的操作
cronb_time 任务执行的调度时间,具体需要参考cronb_time的语法。
use:区分任务是否生效
内嵌的节点
<map>
<property name="send_count" value="2" />
</map>
用来指定任务执行时需要的参数。
需要特别说明的是Action类必须实现org.frameworkset.task.Execute接口,例如:
public class TestJob implements Execute, Serializable {
public void execute(Map parameters) {
System.out.println("send_count = "+parameters.get("send_count"));
}

}

如果用户需要动态管理自己的作业任务,那么可以实现org.frameworkset.task. ScheduleService类
分享到:
评论

相关推荐

    任务调度系统基于Quartz.net

    在"任务调度系统基于Quartz.net"的项目中,我们将深入探讨如何利用Quartz.NET来构建高效、可扩展的任务调度解决方案。 Quartz.NET的核心概念包括作业(Job)、触发器(Trigger)和调度器(Scheduler)。作业是实际...

    Quartz.Net任务调度

    Quartz.Net是一个强大的任务调度框架,它在.NET环境中被广泛应用,...这个QuartzDemo压缩包很可能是包含了一个简单的Quartz.Net应用实例,你可以解压后学习其结构和代码,以便更好地理解和使用这个强大的任务调度框架。

    基于Quartz.Net 的任务调度计划框架

    在“基于Quartz.Net的任务调度计划框架”中,主要涉及以下几个关键知识点: 1. **Quartz.NET基本概念**: - **Job(工作)**:实际执行的任务逻辑,它定义了要执行的业务操作。 - **Trigger(触发器)**:控制Job...

    基于Quartz.Net组件实现定时任务调度-QuartzServer.zip

    "基于Quartz.Net组件实现定时任务调度-QuartzServer.zip"这个压缩包很可能是包含了Quartz.Net的示例项目或者服务器端实现,帮助开发者了解如何在实际项目中使用Quartz.Net进行任务调度。 Quartz.Net的工作原理: 1....

    Spring quartz任务调度

    标题“Spring quartz任务调度”指的是在Java开发中利用Spring框架集成Quartz库来实现应用程序的任务调度功能。Quartz是一款开源的作业调度框架,它允许开发者安排任务在特定时间执行,而Spring框架则提供了与Quartz...

    spring+quartz任务调度代码版

    本项目"spring+quartz任务调度代码版"显然是一个结合了这两者的实践案例,旨在展示如何在Spring环境下集成和使用Quartz进行任务调度。 Spring框架是一个开源的应用框架,它提供了丰富的功能,包括依赖注入、AOP...

    Spingboot+Quartz基于数据库的作业任务调度

    要使用Spring Boot和Quartz实现基于数据库的任务调度,我们需要以下步骤: 1. **引入依赖**:在Spring Boot的`pom.xml`或`build.gradle`文件中添加Quartz库的依赖。这将确保我们在项目中可以使用Quartz的相关类和...

    Quartz调度、终止执行的任务

    总之,Quartz提供了一套强大的任务调度机制,通过灵活的Job和Trigger配置,我们可以创建各种定时任务。同时,它的暂停、删除功能使得我们能够在运行时动态控制任务的执行状态,以适应不同的业务需求。在实际开发中,...

    quartzDemo任务调度例子

    Quartz是Java领域一款强大的开源任务调度框架,它允许开发者...通过研究和理解这个示例,你可以掌握如何在自己的Java应用中使用Quartz进行任务调度,无论是简单的周期性任务还是复杂的定时策略,Quartz都能轻松应对。

    springboot-quartz任务调度

    Quartz则是Java领域中广泛应用的任务调度库,支持复杂的定时任务定义和执行。 1. **集成SpringBoot与Quartz** - 添加依赖:在SpringBoot的pom.xml文件中,需要引入Quartz的依赖,例如: ```xml &lt;groupId&gt;org....

    简单的Quartz任务调度例子

    本篇将通过一个简单的Quartz任务调度实例,来深入理解其核心概念和用法。 首先,我们需要了解Quartz的主要组件: 1. **Job**:工作接口,代表一个具体的任务,实现`org.quartz.Job`接口,定义了`execute...

    quartz 任务调度可运行例子

    总的来说,这个 Quartz 任务调度的运行示例为你提供了一个动手实践的机会,加深对 Quartz 工作原理的理解。通过学习和应用这个示例,你将能够自如地在 Java 应用程序中实现复杂的定时任务调度。

    Java中使用Quartz实现任务自动调度的经典例子!

    Quartz是Java中一个强大的开源任务调度库,它允许开发者定义和执行短时或周期性的任务。...通过学习和实践这个例子,你将能够熟练地在Java项目中使用Quartz进行任务调度,实现复杂的工作流自动化。

    (源码)基于Quartz框架的定时任务调度系统.zip

    # 基于Quartz框架的定时任务调度系统 ## 项目简介 本项目是一个基于Quartz框架的定时任务调度系统,采用Winform技术实现了一个Windows窗体应用程序。该系统支持日志处理,能够展示和控制定时任务的执行、开启和...

    学习笔记_Quartz作业调度框架,使用corn表达式

    Quartz作业调度框架是Java开发中的一个强大工具,用于实现定时任务和工作流管理。它以其灵活性、可扩展性和稳定性而被广泛应用。本学习笔记主要围绕Quartz的使用,特别是如何利用corn表达式来设置定时任务。 Quartz...

    基于zookeeper+quartz/spring task的分布式任务调度组件,非常小巧,无需任何修改就可以使用

    【作品名称】:基于zookeeper+quartz/spring task的分布式任务调度组件,非常小巧,无需任何修改就可以使spring task具备分布式特性,确保所有任务在集群中不重复,不遗漏的执行。 【适用人群】:适用于希望学习...

    quartz任务调度

    深入学习这些文档,你将能够熟练掌握Quartz的使用,为你的项目构建高效稳定的任务调度系统。 总的来说,Quartz是一个功能强大的任务调度工具,它允许开发者精确控制任务的执行时间,从而提高系统的自动化程度和效率...

    基于java和quartz的简单任务调度

    本项目聚焦于使用Java编程语言和Quartz库来实现一个简单的任务调度器。 Quartz是一个开源的作业调度框架,允许开发者创建、调度和管理任务。它提供了丰富的API,支持复杂的调度策略,如定时、间隔、依赖关系等。...

    任务调度Quartz框架

    【Quartz任务调度框架】 Quartz是一个开源的任务调度框架,专为Java应用程序设计,用于创建、管理和执行计划任务。在企业应用中,任务调度是非常常见且重要的需求,例如定期清理系统垃圾文件、定时导入导出数据、...

    利用Quartz.net实现任务调度

    Quartz.NET是一款强大的开源任务调度库,它允许开发者在.NET应用程序中定义、安排和执行周期性的任务。Quartz.NET的设计灵感来源于Java的Quartz项目,它提供了高度灵活且可靠的作业调度框架,支持复杂的调度需求。 ...

Global site tag (gtag.js) - Google Analytics