当前位置: 首页 > news >正文

Quartz

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

终于不用自己去实现Timer了,发现了Quartz这个scheduling solution tool。又是OpenSymphony的东东。

Quartz的划分还是不错的,将TriggerJob严格的分开了,但是其JobDetail,就有些不论不累了。当然,如果按照job所依赖的执行状态和执行体分开的思路,这样处理倒是无可厚非,只是用起来就又有些麻烦了。

所以,自己又封装了了一下,至少可以在外部将JobDetail屏蔽。其实,这种屏蔽的思路,我更喜欢osworkflowfunction的,或jBpmaction的处理思路。

public abstract class QuartzJob implements Job {

public void execute(JobExecutionContext context) throws JobExecutionException {

exe(context.getJobDetail().getJobDataMap().getWrappedMap());

System.out.print("trigger "+context.getTrigger().getName()+" executed");

}

public abstract void exe(Map map);

}

当然,Quartz支持clustering and failover,它的这种支持,是通过其对db persistence的支持而提供的。当然对于大型项目来说,Quartz的这种处理方式是不错的,但是对于很多中小型的项目来说,个人觉得,如果Quartz提供对“对象序列化到文件”的方式,似乎更方便些。

相关文章:

  • yolov5中成功解决:subprocess.CalledProcessError: Command ‘pip install ‘pycocotools>=2.0‘‘
  • Http.sys's HTTPERR and Timer_ConnectionIdle
  • Anaconda 中成功解决:Could not fetch URL https://pypi.tuna.tsinghua.edu.cn/simple/pyperclip/
  • 调用Lasso进行回归预测时遇到问题:ConvergenceWarning: Objective did not converge.
  • 利用mglearn绘图报错:TypeError: ‘(slice(None, None, None), 0)‘ is an invalid key
  • AD/2000技巧
  • 批量对图片处理:对图像进行色度饱和度亮度(HSV)调整
  • 一次性解决:UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe5 in position 373: ordinal not in range
  • 配置对位于网络地址转换(NAT)后方的服务的访问
  • 图像处理:二值图取反
  • 有关使用网络地址转换器的一些问题
  • Google colab踩坑
  • 内容管理系统(CMS)的设计和选型
  • WEB编程开发常用的代码
  • C++:“求解阶乘之和 1! + 2! + 3! + ... + n!” 算法、实现与性能优化
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • ECS应用管理最佳实践
  • ES6 学习笔记(一)let,const和解构赋值
  • JAVA SE 6 GC调优笔记
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JS学习笔记——闭包
  • laravel 用artisan创建自己的模板
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • Python利用正则抓取网页内容保存到本地
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • 阿里云前端周刊 - 第 26 期
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 扑朔迷离的属性和特性【彻底弄清】
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 如何合理的规划jvm性能调优
  • 实现菜单下拉伸展折叠效果demo
  • 小程序01:wepy框架整合iview webapp UI
  • 延迟脚本的方式
  • 一起参Ember.js讨论、问答社区。
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • Java性能优化之JVM GC(垃圾回收机制)
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (poj1.2.1)1970(筛选法模拟)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (四)汇编语言——简单程序
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转)Linq学习笔记
  • .htaccess配置重写url引擎
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET Core 2.1路线图
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET 设计一套高性能的弱事件机制
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)