通用的任务调度软件使用介绍
欢迎大家给我留言,并提建议。我会根据大家的意见对iquartz进行改进。
通用任务调度框架iquartz提供定时任务的定制化,能够开发出特定的任务并进行调度,如数据交换、数据处理、文件上传下载等各类任务,iquartz采用类似tomcat的class加载机制,通过自定义classloader,实现不同任务的依赖隔离,实现各个任务运行的独立和闭环。iquartz还能够对每个任务的调度执行进行监控,详细记录任务每一次的运行情况,并提供日志接口供用户使用。
1. 搭建框架的环境
1.1 iquartz + tomcat + mysql
iquartz下载:https://github.com/gx4air/iquartz/tree/master/bin
mysql脚本:https://github.com/gx4air/iquartz/tree/master/docs
mysql数据库新建数据库iqrtz,并将iqrtz.sql导入
1.2 IDE+ plugin.jar
IDE:eclipse 或idea
plugin.jar下载:https://github.com/gx4air/iquartz/tree/master/bin/client
2. 开发定制任务
2.1 无状态任务(参数一次性设置,任务运行中不会改变)
package datamining.plugin; import java.util.Map; import org.apache.log4j.Logger; import com.tech.dawn.iquartz.plugin.Plugin; import com.tech.dawn.iquartz.plugin.PluginResult; public class KMeansPlugin implements Plugin { private Logger logger = Logger.getLogger(KMeansPlugin.class); @Override public PluginResult doPlug(Map<String, String> arg0) throws Throwable { logger.info("从数据库查数据"); logger.info("数据分析"); logger.info("数据结束,返回任务结果"); PluginResult pr = new PluginResult(); pr.setResulst(true); return pr; } }
2.2 有状态任务(任务运行前设定的参数可能随着任务的不断运行而有规律的改变)
package data.plugin; import java.sql.Connection; import java.sql.DriverManager; import java.util.Map; import org.apache.log4j.Logger; import com.tech.dawn.iquartz.plugin.Plugin; import com.tech.dawn.iquartz.plugin.PluginResult; public class DataMigrationPlugin implements Plugin { private Logger logger = Logger.getLogger(DataMigrationPlugin.class); @Override public PluginResult doPlug(Map<String, String> params) throws Throwable { String sourceDriver = params.get("sourceDriver"); String sourceUrl = params.get("sourceUrl"); String sourceUser = params.get("sourceUser"); String sourcePassword = params.get("sourcePassword"); String rowIndex = params.get("rowIndex"); logger.info("从数据源取数据,url-->"+sourceUrl); logger.info("sourceDriver-->"+sourceDriver); Class.forName(sourceDriver); Connection conn = DriverManager.getConnection(sourceUrl, sourceUser, sourcePassword); logger.info("数据源connection成功:"+conn); rowIndex = (Integer.parseInt(rowIndex)+1000)+""; params.put("rowIndex", rowIndex); logger.info("new rowIndex:"+rowIndex); logger.info("返回任务结果"); PluginResult pr = new PluginResult(); pr.setParams(params); pr.setResulst(true); return pr; } }
所需依赖正常设置在classpath下
注意:开发的任务必须以xxxPlugin命名。
开发好的xxxPlugin.class通过jar命名打包成xxxPlugin.jar
注意:依赖无需打入包中。
3. 使用iquartz对开发好的任务进行调度
访问/iquartz/index.jsp
4. 对任务的定时器进行监控
5. 查看任务每一次的执行情况
- azkaban任务调度系统部分功能介绍(使用篇)
- Spring学习:使用Spring调度任务
- 在Spring中使用Quartz进行任务调度
- 在Spring中使用Quartz进行任务调度(1)
- 《pro Spring》学习笔记之使用JDK Timer调度任意任务
- 简易通用任务调度框架-功能定义
- 在SSH框架下使用基于配置的Spring3的调度任务每次执行2次的问题
- MySQL 定时任务 事件调度器(Event Scheduler)介绍
- 软件包管理 之 file.src.rpm 使用方法的简单介绍
- spring任务调度的使用
- 在Spring中使用Quartz进行任务调度(3)
- “笨兔数独” 解数独软件 介绍及使用指南
- 使用C#开发计划任务调度服务
- spring3中使用注解方式实现定时器调度任务
- 系统管理指南:基本管理 第19 章• 使用软件包命令管理软件(任务)
- Gravatar 全球通用头像简单介绍与使用教程
- spring任务调度的使用
- 通用usb驱动libusb介绍和使用示例