bboss quartz定时任务使用案例介绍
本文demo gradle工程源码地址:
https://github.com/bbossgroups/quartzdemo
1.导入bboss quartz
maven坐标
<dependency>
<groupId>com.bbossgroups</groupId>
<artifactId>bboss-schedule</artifactId>
<version>5.7.0</version>
</dependency>
gradle坐标
compile 'com.bbossgroups:bboss-schedule:5.7.0'
bboss 整合quartz版本为
quartz 2.3.0。
2.定义作业处理任务
package org.frameworkset.quartz.job;
/**
* 定时任务实现类
*/
public class DemoJob {
/**
* 定时任务需要依赖的参数
*/
private String jobParam ;
private String jobParam1;
/**
* 定时任务方法
*/
public void jobmethod(){
System.out.println("execute job method:jobParam="+jobParam+",jobParam1="+jobParam);
}
}
定时任务配置
在bboss quartz任务配置文件org/frameworkset/task/quarts-task.xml中添加定时任务:
<!--
任务调度
-->
<properties>
<!--<config file="elastic.properties"/>-->
<!--quartz引擎配置参数,参考quartz官方配置文档
http://www.quartz-scheduler.org/documentation/quartz-2.2.x/configuration/
第一部分
-->
<property name="quartz.config">
<map>
<property name="org.quartz.scheduler.instanceName" value="DefaultQuartzScheduler111" />
<property name="org.quartz.scheduler.rmi.export" value="false" />
<property name="org.quartz.scheduler.rmi.proxy" value="false" />
<property name="org.quartz.scheduler.wrapJobExecutionInUserTransaction" value="false" />
<property name="org.quartz.threadPool.class" value="org.quartz.simpl.SimpleThreadPool" />
<property name="org.quartz.threadPool.threadCount" value="10" />
<property name="org.quartz.threadPool.threadPriority" value="5" />
<property name="org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread" value="true" />
<property name="org.quartz.jobStore.misfireThreshold" value="6000" />
<property name="org.quartz.jobStore.class" value="org.quartz.simpl.RAMJobStore" />
</map>
<!-- for cluster -->
</property>
<!--第二部分-->
<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的说明文档
基本格式 : [参数间必须使用空格隔开]
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
shouldRecover:集群环境下属性必须设置为 true,当Quartz服务被中止后,再次启动或集群中其他机器接手任务时会尝试恢复执行之前未完成的所有任务。
used 是否使用
true 加载,缺省值
false 不加载
子元素说明:
parameter:设置任务执行的参数,name标识参数名称,value指定参数的值
-->
<list>
<!--配置定时任务-->
<property name="quartzjobdemo" jobid="quartzjobdemo"
bean-name="quartzjobdemo"
method="jobmethod"
cronb_time="0/1 * * * * ?" used="true"
shouldRecover="false"
/>
</list>
</property>
</list>
</property>
<property name="quartzjobdemo" class="org.frameworkset.quartz.job.DemoJob"
f:jobParam="asdff"
f:jobParam1="dddd"
/>
</properties>
配置说明
配置文件中包含两部分:
第一部分 quartz引擎参数配置,这里不做具体介绍,可以参考文档:
http://yin-bp.iteye.com/category/333270
第二部分 作业配置,可以定义多个作业,这里配置了quartzjobdemo一个作业:
<property name="quartzjobdemo" jobid="quartzjobdemo"
bean-name="quartzjobdemo"
method="jobmethod"
cronb_time="0/1 * * * * ?" used="true"
shouldRecover="false"
/>
name和jobid是作业标识,有含义和保证唯一性就行,bean-name指定了作业任务实现类的bboss ioc组件名称,methd指定了作业的方法名称,cronb_time指定了作业cron触发时间点,这里是每秒执行一次作业方法:
0/1 * * * * ?
作业组件定义部分,bboss ioc配置参考文档:
http://yin-bp.iteye.com/blog/1434626
<property name="quartzjobdemo" class="org.frameworkset.quartz.job.DemoJob"
f:jobParam="asdff"
f:jobParam1="dddd"
/>
3.调试作业任务
调试作业任务,在工程中新建一个带main方法的测试类,然后再idea或者eclipse中run和debug即可:
import org.frameworkset.task.TaskService;
/**
* 调试作业任务
*/
public class TestTask {
public static void main(String[] args){
/**
* 启动quartz作业引擎
*/
TaskService.getTaskService().startService();
}
}
4.发布独立运行的版本
编写一个启动类:
org.frameworkset.quartz.job.Main
package org.frameworkset.quartz.job;
import org.frameworkset.task.TaskService;
/**
* bboss微服务主程序
*/
public class Main {
public static void main(String[] args){
//启动定时任务quartz引擎
TaskService.getTaskService().startService();
}
}
配置入口类-runfiles/config.properties:
#工具主程序
mainclass=org.frameworkset.quartz.job.Main
基于gradle发布作业版本
在命令行运行指令:
gradle releaseVersion
也可以在idea中发布版本:
版本发布成功后,在工程的build目录下会生成一个可运行的包,启动作业:
linux :执行startup.sh
windowd:执行startup.bat
以windows为例:
运行结果:
一个更具体的bboss quartz应用项目:
elasticsearch历史数据清理作业
https://github.com/bbossgroups/elktask
- 大小: 49.4 KB
- 大小: 186 KB
- 大小: 116.8 KB
- 大小: 198.8 KB
- 大小: 85.2 KB
分享到:
相关推荐
BBoss安全认证过滤器是Java Web开发中一种用于实现用户身份验证和权限控制的重要组件。在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在...
本文将详细介绍如何在BBoss的IOC配置文件中引用外部属性文件,以便更好地管理和动态配置应用。 首先,BBoss的IOC配置文件通常是一个XML文件,比如`bboss-ioc.xml`,在这个文件中我们可以声明并配置各种bean。当需要...
8. **任务调度**:内置定时任务调度器,支持周期性任务的执行,可用于大数据处理、报表生成等场景。 9. **国际化与多语言**:BBoss支持多语言环境,方便跨国企业构建全球化应用。 10. **日志管理**:提供统一的...
在“bboss mvc开发手册.doc”中,我们可能会找到关于如何使用BBoss MVCDemo进行开发的详细指南。 首先,让我们深入了解BBoss MVCDemo的核心特性: 1. **模型(Model)**:BBoss MVCDemo支持多种数据访问方式,如JDBC...
springboot集成ElasticsearchBboss调用Elasticsearch的案例分享
例如,在一个域下的多个子应用之间,使用bboss可以共享认证信息,用户登录其中一个应用后,无需再次登录即可访问其他应用。 文档中提到了会话共享需要解决的五大技术难题: 1. session数据序列化问题,即如何有效...
本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...
Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿
2. **bboss elasticsearch开发入门教程.wmv**: 通过实例演示,讲解如何使用BBoss进行索引操作、数据插入、查询和更新,帮助初学者快速上手。 **六、资料阅读** "说明.txt" 文件可能包含了关于这些教程的详细步骤和...
BBoss Elasticsearch是针对Elasticsearch设计的一款辅助工具,主要用于帮助开发者实现数据库数据到Elasticsearch的批量和定时导入。 BBoss(Business Basic Open Source)是一系列企业级开源组件的集合,旨在简化...
**bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。它实现了流批一体化的数据处理能力,使得用户能够灵活地应对实时和批量的数据处理场景。在...
在`demo`这个文件中,可能包含了使用bboss操作Elasticsearch的基本示例代码。例如,创建索引、插入文档、执行查询等。通常,这些示例会展示如何初始化bboss客户端,如何构造和执行DSL查询,以及如何处理返回结果。 ...
【bboss-db-elasticsearch-tool-master_java_】是一个Java ORM(对象关系映射)框架,它在功能上超越了MyBatis,提供了对多种数据库的广泛支持,包括MySQL、Oracle、PostgreSQL、SQLServer、DB2、DM以及MongoDB。...
1. **BBoss框架入门**:介绍如何安装配置BBoss,以及创建第一个项目的基本步骤。 2. **BBoss核心组件讲解**:详细解析BBoss的各个模块,如DAO、Service、权限控制等的使用方法。 3. **EasyUI组件使用**:讲解如何在...
"基于bboss新版平台项目环境搭建和代码工具使用视频教程"提供了一套详细的指导,旨在帮助开发者快速掌握bboss新版本平台的相关操作。bboss,全称为Business Basic Open Source,是一个开源的企业级开发框架,它为...
官方版本,亲测可用
本培训文档将介绍集群session管理的发展历史、bbosssession的架构及特点、性能指标、与应用的集成方式、部署模式以及场景演示等,旨在帮助技术人员理解并掌握bbosssession的使用方法和优势。 一、集群session管理...
BBoss Persistent是一个轻量级的持久层框架,它提供了方便的方式来处理这些大字段。本文将深入探讨在BBoss Persistent 1.0.2中如何高效地管理CLOB和BLOB数据。 首先,CLOB用于存储大量的文本数据,如长篇文章或XML...