内容简介:上篇博文:一个简单的动态脚本调度框架,支持运行时,实时增加,删除和修改动态脚本,可用于后端的进行接口验证、数据订正,执行定时任务或校验脚本本项目主要涉及到的技术栈:
上篇博文: 动态任务执行框架想法篇
Quick-Task 动态脚本支持框架整体介绍篇
一个简单的动态脚本调度框架,支持运行时,实时增加,删除和修改动态脚本,可用于后端的进行接口验证、数据订正,执行定时任务或校验脚本
本项目主要涉及到的技术栈:
- groovyEngine (groovy脚本加载执行)
- commons-io (文件变动监听)
I. 使用姿势
1. pom配置
添加仓库地址
<repositories> <repository> <id>yihui-maven-repo</id> <url>https://raw.githubusercontent.com/liuyueyi/maven-repository/master/repository</url> </repository> </repositories>
添加项目依赖
<dependency> <groupId>com.git.hui</groupId> <artifactId>task-core</artifactId> <version>0.0.1</version> </dependency>
2. 使用demo
a. 源码方式
源码下载之后的使用case,可以参考 com.git.hui.task.AppLaunch
,运行main方法,监听 ./task-core/src/test/java/com/git/hui/task
目录下脚本的变动即可
b. jar包引用
首先准备一个Groovy脚本,放在指定的目录下,如 /tmp/script/DemoScript.groovy
package com.git.hui.task import com.git.hui.task.api.ITask class DemoScript implements ITask { @Override void run() { println name() + " | now > : >>" + System.currentTimeMillis() } @Override void interrupt() { println "over" } }
对应的启动类可以如下
public class AppRunner { // main 方式 public static void main(String[] args) throws Exception { new ScriptExecuteEngine().run("/tmp/script/"); Thread.sleep(24 *60 * 60 * 1000); } // junit 方式启动 @Test public void testTaskRun() { new ScriptExecuteEngine().run("/tmp/script/"); Thread.sleep(24 *60 * 60 * 1000); } }
c. 测试
应用启动完毕之后
/tmp/script/DemoScript.groovy /tmp/script /tmp/script
注意不要在groovy脚本中执行 System.exit(1)
, 会导致整个项目都停止运行
II. 设计原理
基本结构如下图
从图中基本上也可以看出,这个项目的结构属于非常轻量级的,核心角色,有下面几个
- Task : 具体的任务脚本
- TaskContainer: 持有执行任务的容器
- TaskChangeWatcher: 任务观察器,用于查看是否有新增、删除or修改任务,从而卸载旧的任务,并加载新的任务
另外一块属于扩展方面的插件体系,目前并没有给与实现,若将本框架继承在Spring生态体系中运行时,这些插件的支持就特别简单了
- RedisTemplate
- RestTemplate
- AmqpTemplate
- xxxTemplate
III. 其他
0. 相关
博文:
项目:
1.一灰灰Blog: https://liuyueyi.github.io/hexblog
一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
2. 声明
尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
- 微博地址:小灰灰Blog
- QQ: 一灰灰/3302797840
以上所述就是小编给大家介绍的《QuickTask动态脚本支持框架整体介绍篇》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Flask框架从入门到精通之扩展脚本(十五)
- Quick-Task 动态脚本支持框架之结构设计篇
- 防止删库悲剧发生,这里有个Bash脚本测试框架,危险代码一测便知
- 脚本文件里的 Hybrid Script(混合式脚本)
- 脚本错误量极致优化-定位压缩且无 SourceMap 文件的脚本错误
- 如何从PHP脚本(如批处理文件)中运行多个PHP脚本?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java 8实战
厄马(Raoul-Gabriel Urma)、弗斯科(Mario Fusco)、米克罗夫特(Alan Mycroft) / 陆明刚、劳佳 / 人民邮电出版社 / 2016-4-1 / CNY 79.00
本书全面介绍了Java 8 这个里程碑版本的新特性,包括Lambdas、流和函数式编程。有了函数式的编程特性,可以让代码更简洁,同时也能自动化地利用多核硬件。全书分四个部分:基础知识、函数式数据处理、高效Java 8 编程和超越Java 8,清晰明了地向读者展现了一幅Java 与时俱进的现代化画卷。一起来看看 《Java 8实战》 这本书的介绍吧!