隔叶黄莺 The Blog of Unmi

〖隔叶黄莺三四声,挂壁飞瀑千万尘。若是人间无净土,此处为何妙语真! 隔叶黄莺四字,本非取自此句,而有寄寓他意,因见妙语,亦与予心合!〗

BlogJava 首页 新随笔 联系 聚合 管理
  380 Posts :: 106 Stories :: 1178 Comments :: 0 Trackbacks
  1. 第一章. 企业应用中的作业调度
    内容提要:什么是作业调度,作业调度为什么说是重要的,企业应用中的作业调度,非企业应用中的作业调度,作业调度与工作流,关于作业调度其他可选择方案
  2. 第二章. Quartz 起步
    内容提要:本章对 Quartz 框架一个快速的入门介绍,同时也大略指导你从哪里下载,构建和安装这个框架
  3. 第三章. Hello Quartz (第一部分)
    内容提要:建立 Hello Quartz 工程,并创建一个 Quartz Job 类 ScanDirectoryJob.
  4. 第三章. Hello Quartz (第二部分)
    内容提要:创建一个 Quartz Scheduler,关联上一个 Quartz Trigger 以编程方式调度前面编写的 ScanDirectoryJob 运行。
  5. 第三章. Hello Quartz (第三部分)
    内容提要:通过配置 quartz.properties、quartz_jobs.xml 以声明的方式调度 ScanDirectoryJob 运行。
  6. 第三章. Hello Quartz (第四部分)
    内容提要:让我们最后简单讨论打包一个用到了 Quarts 框架的应用程序的流程,需要依赖于哪些包,也以此来结束本章的内容。
  7. 第四章. 部署 Job (第一部分)
    内容提要:介绍 Scheduler 和 SchedulerFactory 有哪些类型、SchedulerFactory 的关键 API 方法;以及如何通过 java.util.Properties 实例或默认 quartz.properties 文件创建 Scheduler。
  8. 第四章. 部署 Job (第二部分)
    内容提要:如何管理 Scheduler(启动、停止、Standby 模式)。还介绍了 Job、JobExecutionContext、JobDetail、JobDataMap,及如何访问 JobDataMap 中的数据。有状态和无状态的 Job。
  9. 第四章. 部署 Job (第三部分)
    内容提要:Job 的易失性、持久性和可恢复性,如何从 Scheduler 中移除、中断 Job。Quartz 已为我们提供了哪些 Job。最后是 Java 线程的简单介绍。
  10. 第四章. 部署 Job (第四部分)
    内容提要:线程在 Quartz 中的用法,主处理线程:QuartzSchedulerThread 和 Quartz 工作者线程。Quartz Trigger 和 Calendar 各有哪些类型和如何使用。
  11. 第五章. Cron 触发器及相关内容 (第一部分)
    内容提要:引入 Quartz CronTrigger 及简单使用 CronTrigger 来部署一个 Job
  12. 第五章. Cron 触发器及相关内容 (第二部分)
    内容提要:详细介绍了 cron 表达式的格式和像 , - * ? / L W C # 特殊符号的使用
  13. 第五章. Cron 触发器及相关内容 (第三部分)
    内容提要:CronTrigger 使用起(startTime) 迄(endTime) 日期的使用。TriggerUtils 简单方便的创建 Trigger。应用 JobInitializationPlugin 在 quartz_jobs.xml 配置文件中写 Cron 表达式。
  14. 第五章. Cron 触发器及相关内容 (第四部分)
    内容提要:Cron 表达式 Cookbook,列举了各种 Cron 表达式的写法和意义,有助于更好的理解 Cron 表达式;还用了 TriggerUtils 创建了一个即刻触发的 Trigger。
  15. 第六章. Job 存储和持久化 (第一部分)
    内容提要:介绍 Quartz 中的 Job 存储,JobStore 接口相关 API 方法。使用 RAMJobStore 来实现 Job 存储及它的优缺点。
  16. 第六章. Job 存储和持久化 (第二部分)
    内容提要:使用持久性的 JobStore,可用类型 JobStoreTX 和 JobStoreCMT。持久性 JobStore 是通过数据库来完成的,哪可支持哪些数据及需要创建些什么表。
  17. 第六章. Job 存储和持久化 (第三部分)
    内容提要:使用和配置 JobStoreTX,需要为不同数据库平台指定不同的驱动代理( DriverDelegate),和 quartz.properties 中与 JobStoreTX 相关配置说明。
  18. 第六章. Job 存储和持久化 (第四部分)
    内容提要:为 JobStoreTX 通过在 quartz.properties 配置来创建数据源,并在 Scheduler 中使用数据源
  19. 第六章. Job 存储和持久化 (第五部分)
    内容提要:从数据库中加载 Job 等信息;配置和使用 JobStoreCMT;详细说明了在 quartz.propertis 中关于 JobStoreCMT 的配置属性。
  20. 第六章. Job 存储和持久化 (第六部分)
    内容提要:为 JobStoreCMT 数据源;和 JobStoreTX 有所不同,需要为 JobStoreCMT 配置两个数据源,一个是不爱管理的,另一个是受容器管理的数据源。
  21. 第六章. Job 存储和持久化 (第七部分)
    内容提要:有关改善 JobStore 性能的讨论--主要是 JDBC JobStore;还有如何创建自定义的 JobStore--需实现 40 个接口方法。
  22. 第七章. 实现 Quartz 监听器 (第一部分)
    内容提要:简单介绍了监听器是 Quartz 框架的一个扩展点,实现一个监听器的基本步骤,最后说明了全局监听器和非全局监听器的区别。
  23. 第七章. 实现 Quartz 监听器 (第二部分)
    内容提要:JobListener (Job 监听器) 的介绍和使用方法,代码演示了如何注册了全局 Job 监听器和非全局 Job 监听器。
  24. 第七章. 实现 Quartz 监听器 (第三部分)
    内容提要:TriggerListener (Trigger 监听器) 的介绍和使用方法,代码演示了如何注册全局 Trigger 监听器和非全局 Trigger 监听器。
  25. 第七章. 实现 Quartz 监听器 (第四部分)
    内容提要:SchedulerListener (Scheduler 监听器) 的介绍和使用方法,多是关于对 Scheduler 管理事件的监听,而不只专注于 Job 或 Trigger 的。
  26. 第七章. 实现 Quartz 监听器 (第五部分)
    内容提要:Quartz 专门提供了一个与 FileScanJob 一同使用的 FileScanListener,用于监视文件 lastModifiedDate 的改变。
  27. 第七章. 实现 Quartz 监听器 (第六部分)
    内容提要:除前面用编程式使用监听器外,Quartz 还支持在 quartz_jobs.xml 中以声明式使用监听器。
  28. 第七章. 实现 Quartz 监听器 (第七部分)
    内容提要:调用监听方法的线程,按什么顺序调用监听方法,最后列了一些能够把监听器应用到什么地方。
  29. 第八章. 使用 Quartz 插件 (第一部分)
    内容提要:开始介绍 Quartz 插件,以及它要实现的接口和其中的三个接口方法的使用时机和用途。
  30. 第八章. 使用 Quartz 插件 (第二部分)
    内容提要:讲述如何创建 Quartz 插件,并用一个从指定目录中加载所有 Job 文件的 Quart 插件作为例子来说明。
  31. 第八章. 使用 Quartz 插件 (第三部分)
    内容提要:插件类写好了,就是关于如于注册插件的话题了。本节对此详细讲解,并以前面写的插件例子进行示范。
  32. 第八章. 使用 Quartz 插件 (第四部分)
    内容提要:Quartz 从属性文件中加载多个插件类时不能保证加载的顺序,所以本节引入一个自定义的统一按顺序加载其他插件的,名之为插件加载器的东西,其实也就是其他插件类的父亲。
  33. 第八章. 使用 Quartz 插件 (第五部分)
    内容提要:Quartz 还为我们提供了几个开箱即用的工具插件:JobInitializationPlugin,JobInitializationPluginMulitple,LogginJobHistoryPlugin,LoggingTriggerHistoryPlugin,ShutdownHookPlugin。
  34. 第九章. 使用 Quartz 的远程方式 (第一部分)
    内容提要:不在同一地址空间的 Quartz 需要一种远程管理的管理,Quartz 选用了 RMI。本部分主要是简单介绍了 RMI 技术。
  35. 第九章. 使用 Quartz 的远程方式 (第二部分)
    内容提要:配置、创建并运行 Quartz RMI 服务端。
  36. 第九章. 使用 Quartz 的远程方式 (第三部分)
    内容提要:配置、创建并运行 Quartz RMI 端户端,演示了 Quartz RMI 客户端通过远程调度器部署一个 Job 的 的例子。
  37. 第十章. J2EE 中使用 Quartz (第一部分)
    内容提要:J2EE 中引入 Quartz。在 J2EE 环境中作为 J2SE 客户端运行 Quartz。演示了一个 Quartz 为我们提供的 EJBInvokerJob 的例子。
  38. 第十章. J2EE 中使用 Quartz (第二部分)
    内容提要:借助于 QuartzInitializerServlet 或 QuartzInitializerListener 在 J2EE 容器上运行 Quartz,并使用容器的相关资源。
  39. 第十一章. Quartz 集群 (第一部分)
    内容提要:Quartz 应用也能进行集群。及 Quartz 集群能提供高可用性、伸缩性、进行负载均衡。
  40. 第十一章. Quartz 集群 (第二部分)
    内容提要:介绍集群中的 Quartz 应用是如何工作的。集群中的 Quartz 应用是通过中心数据库来感知道其他节点的存在。
  41. 第十一章. Quartz 集群 (第三部分)
    内容提要:如何配置使 Quartz 节点工作在集群环境中。
  42. 第十一章. Quartz 集群 (第四部分)
    内容提要:运行 Quartz 集群节点,及提供了一个关于使用 Quartz 集群的 Cookbook 参考。
  43. 第十二章. Quartz Cookbook (第一部分)
    内容提要:Scheduler 相关的 Cookbook,Scheduler 的创建、启动、停止、暂停。
  44. 第十二章. Quartz Cookbook (第二部分)
    内容提要:Job 相关的 Cookbook,Job 的创建、部署。和如何用 TriggerUtils 创建一个只需触发一次的 Job。
  45. 第十二章. Quartz Cookbook (第三部分)
    内容提要:如何替换、更新已部署的 Job。更新已存在的 Trigger。如何列示出 Scheduler 中的所有 Job 和 Trigger。
  46. 第十三章. Quartz 和 Web 应用 (第一部分)
    内容提要:Web 应用中引入 Quartz 及如何集成。
  47. 第十三章. Quartz 和 Web 应用 (第二部分)
    内容提要:在 Struts 框架中使用 Quartz,虚构了一个叫做 Job 管理控制台的 Web 应用,。需要在 Web 应用启动时创建一个 SchedulerFactory。
  48. 第十三章. Quartz 和 Web 应用 (第三部分)
    内容提要:所幸 QuartzInitializerServlet 帮了我们大忙,介绍了 QuartzInitializerServlet 在 web.xml 中的配置,指定属性文件及应用启动时 Scheduler 是否启动等。Quartz 还为我们提供了 ActionUtil 类方便了访问 SchedulerFactory 和 Scheduler。
  49. 第十三章. Quartz 和 Web 应用 (第四部分)
    内容提要:还有,别忘了我们还有一个 QuartzServletContextListener 可选择的,从 2.3 版本的 Servlet API 开始就可以用这个。
  50. 第十三章. Quartz 和 Web 应用 (第五部分)
    内容提要:最后介绍了 Quartz 官方的一个 Quartz Web 应用程序,它是以 Velocity 作为视图实现的。
  51. 第十四章. 工作流中使用 Quartz (第一部分)
    内容提要:可以把 Quartz 引入到工作流中,主要讲了单独用 Quartz 来把 Job 组成 Job 链,模拟成一个酷似工作流的东西。
  52. 第十四章. 工作流中使用 Quartz (第二部分)
    内容提要:OSWorkflow 工作流快速入门,讲了 OSWorkflow 工作流中各种概念,为它与 Quartz 集成作个铺垫。
  53. 第十四章. 工作流中使用 Quartz (第三部分)
    内容提要:讲了如何把 OSWorkflow 与 Quartz 进行集成,做了使用 Action 自定义函数的例子。
  54. 第十四章. 工作流中使用 Quartz (第四部分)
    内容提要:用 Workflow Job 来启动、运行工作流,通 JobDataMap 来传递工作流名称,transientVars 等。
  55. 附录 A. Quartz 配置参考 (第一部分)
    内容提要:一些主要的、公共的 Quartz 属性配置参考。
  56. 附录 A. Quartz 配置参考 (第二部分)
    内容提要:线程池、各种监听器和插件的配置参考。
  57. 附录 A. Quartz 配置参考 (第三部分)
    内容提要:介绍 Quartz RMI 的相关配置,及引入 JobStore 选项。
  58. 附录 A. Quartz 配置参考 (第四部分)
    内容提要:Quartz JobStore 中的 JobStoreTX 的配置参考。
  59. 附录 A. Quartz 配置参考 (第五部分)
    内容提要:Quartz JobStore 中的 JobStoreCMT 的配置参考。
  60. 附录 A. Quartz 配置参考 (第六部分)
    内容提要:关于数据源的配置参考。



[版权声明]
本站内文章,如未特别注明,均系原创或翻译之作,本人 Unmi 保留一切权利。本站原创及译作未经本人许可,不得用于商业用途及传统媒体。网络媒体可随意转载,或以此为基础进行演译,但务必以链接形式注明原始出处和作者信息,否则属于侵权行为。另对本站转载他处文章,俱有说明,如有侵权请联系本人,本人将会在第一时间删除侵权文章。及此说明,重之之重。
posted on 2008-05-25 12:00 隔叶黄莺 阅读(3749) 评论(34)  编辑  收藏 所属分类: Quartz

Feedback

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新中) 2008-05-25 14:16 虎啸龙吟
其实 博主这么辛苦 ,我们很是感激啊  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新中) 2008-05-25 16:17 BeanSoft
是的, 非常感谢作者!  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新中) 2008-05-25 16:53 rocket
呵呵,那天我就和unmi聊天说,他做的文章给用我们家乡的一句话,就是扎实,相当的扎实  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新中) 2008-05-26 08:07 wangxq
相当不错!赞一个!  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新中) 2008-05-26 11:57 hejianhuacn
能否整理成PDF版啊?方便阅读阿  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新中) 2008-05-29 10:29 houshangjun
谢谢你的翻译,很好  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新中) 2008-06-11 11:22 JonnyKan
不错不错,真的很不错哦  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新至20080622) 2008-06-25 11:02 文杰
谢谢楼主了 很好的资料。  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新至20080629) 2008-07-02 17:04 孟鹏
谢谢楼主了  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新至20080712) 2008-07-18 11:10 孟鹏
楼主你好,我现在做一个调度系统的维护与开发。有一个问题想请教一下:
我们现有的系统有一个功能模块可以添加多个作业,并且给这些作业添加关联关系,我想在现在模块里增加功能比如在执行第一个作业时由于某种原因导致时间过长。因为建立了关联关系,我想停止下某个作业,具体跟quartz没有关系吧。我是不是只要调用scheduler.standby();在需要开启时在调用schedule.start();是这样吧。由于接触项目时间比较短,您这本书也刚看到第七章问题可能提的不是很清楚请谅解  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新至20080712) 2008-07-18 11:38 隔叶黄莺
对 scheduler.standby() 的操作会停止整个调度器,所有的作业都会停掉。你需要用 scheduler 的 pauseJob, pauseTrigger, pauseJobGroup 或 pauseTriggerGroup 等方法来停止 job 或 Trigger 关联的 Job。

以上的暂停方法似乎不能停止掉正在执行的 Job,只是暂停触发以后的触发。对于正在执行的 Job,可能要自己用代码来控制,如设置一个信号啦。  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新至20080712) 2008-07-18 15:21 孟鹏
麻烦楼主:
暂停一个job、jobGroup、trigger有什么区别?
暂停一个job其他的job还会运行?
暂停一个jobGroup相同组的job都会停止,其他的还会运行?
暂停一个trigger也是只暂停本身?
我要恢复怎么做?
是比如暂停的是triggerGroup这个组的job都会等待?比如已经执行了一个job中,我发出暂停指令,再恢复时,会继续执行吗?  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新至20080712) 2008-07-18 15:31 打酱油
以上那些问题就不妨你自己架起环境来亲自动手测试测试,或者深入到源代码中,这样不仅能给自己留下深刻印像,也是开源软件的很好的学习过程。  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新至20080712) 2008-07-18 16:48 孟鹏
好的知道了  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新至20080722) 2008-08-04 16:16 Fingki.li
很不错计划!支持一下  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新至20080806) 2008-08-07 16:44
谢谢!!!  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新至20080819) 2008-08-19 17:00 prisoner
加油加油!!!  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新至20080819) 2008-08-19 23:22 隔叶黄莺
内容部分已全部翻译完成,剩下还有一个附录A等,这些不影响整体掌握全书的知识,所以,目前我正在着手对原来的小小成果进行整理,然后生成一个 CHM 文件来,欲与大家分享。
由于是本人首次尝试的翻译之作--起初的一时之兴,后来变成一桩心愿,纵然是有许许多多出落之差,还请大家狠命指出,只要是针对事情本身即可。
初步确认用 QuickCHM 工具生成 CHM 文件,已考虑了首先通过程序读取 Blog 备份文件,利用模板技术从中生成自己一篇篇所要的 Quartz 的 HTML 文件,然后依照原书的章节、目录排列再作进一步细化处理。
最后是,坐而言,不如起而行,先自己为自己期待一下吧!  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 已完成部分编目(更新至20080819) 2008-08-22 09:33 lx281
博主辛苦了,最近工作中刚刚开始接触到这方面的东西,呵呵~学习一下  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-08-25 02:35 ∪∩BUG
真是有心者,我心中也一直有个愿望,有空时能给Linux的中文wiki(比如Ubuntu的)翻译一些有用的文章,可是学业真忙啊,每天压力很大,不知道其他同学怎么都能放纵自己闲着而不做有意义的事情.  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-21 11:49 Yeats
剛剛逛到這一個網站發現樓主超強的...
我現在遇到一個棘手的問題想要請教一下...

在第13張有提到更新job 的部份,但是如果是Job 本身code的部份ㄋ.

小弟用Quartz寫了一個 scheduler 的程式,這一隻程式的功能就是當開始執行時,會先去資料庫撈出所有 Job 的設定,包括每一個job 的程式位置,執行時間....
然後再一個一個的加上trigger 塞到Scheduler 裡面....讓他執行....
理論上.這一個Scheduler 是不會停止運作.....
當我之後要新增加一個job,只要在Database 裡面做一下設定,再單獨把這一個Job
新增加到正在運作中的scheduler 就可以...這一部分沒有問題...

現在問題來了.,...當其中一個job (class),有做部分修改...我原本想就直接update原本的class 就好
應該再下一次執行的時候就會抓新的class....
但是..發現確一直是跑舊的class....
我甚至把這一個class 給刪除....Scheduler 時間到了還是可以繼續執行...
感覺上它好像是已經把所有的class 都load 到記憶體裡面.....

請問我要如何在不停止scheuler 的情況下..讓他更新class....
因為如果有restart scheduler 會影響到其他正在跑的job.....

my mail :yeats.yang@garmin.com


謝謝博主  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-21 12:51 隔叶黄莺
顺着你原有的思路,你可能想要的是一个能支持 Hot Deploy 的 ClassLoader,但是这样的 ClassLoader 需要知道什么时机去重新 Load 改变的类,还得先把已 Load 的类从 JVM 中 Unload,你希望想 Tomcat 等应用服务器那样换个 Class,程序的执行行为便改变了。

基于这个思路你可以写一个自己的 ClassLoader,但是这样稍显复杂
再一个就是使用一个工具 JavaRebel 能帮助你单独的应用程序完成 Hot Deploy,关于它的使用,我先前也翻译过一篇:JavaRebel 1.0 正式版发布,为应用服务器侦测类的变化(http://www.blogjava.net/Unmi/archive/2007/12/08/166285.html)

不过,楼上,我还是建议另一种方式。既然是涉及到 Class 的修改,我想更多是因为 Bug 所致,那何妨重启一下应用程序;若不然,就应该通过相关的配置来改变程序的行为,比如改变相应的 JobDetailMap 中的参数,或某些静态变量。

再或者,更彻底些是换了新的 Job Class,那就可以把原有的 Job 从 Scheduler 上 delete 掉,然后 add 这个新 Job 到 Scheduler 也行。  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-21 14:54 Yeats
版主,
  沒錯..的確是 Hot Deploy.....
  
因為我在寫的scheduler 以後上面會掛上4、50個jobs,每一個Job 可能是做transaction 或者在跑報表的工作...
假設有一個Job是在產生報表的...user 有可能需要修改報表內容,要多增加內容,那就得修改其中一個job,如果這時重起 scheduler 就會影響到其他正在跑的jobs,

我有試過,重新update job class之後,把scheduler 內的該job 移除後再重新新增一次,結果還是相同....仍舊是執行舊的class.....

我也有在別的地方發問,也是有人指引使用classloader,但是沒有進一步的說明....
我有試著去study ClassLoader,但是最大的問題是 class loader是自己去讀取該class 自己執行這一個job....
但是使用Quartz最大的問題是,trigger 是由Quartz 去呼叫class,而不是我程式來控制呼叫執行 job class...

至於 JavaRebel 我沒有用過,等一下去拜讀您的文章.

Thanks!
  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-21 15:11 隔叶黄莺
先简单一点,修改了 Class 后换一个类名放进去,原来那个 Job 废弃掉  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-21 15:41 Yeats
哈..這一個方法我也想過..
不過我如果跟主管提出這一個方法
肯定會被定....
我也沒勇氣上台報告時說解法是這樣....^^"

我們這邊的報表更新很頻繁...那些jobs一定是每個project的developer作..
如果每次修改都要更改程式名稱...應該不太好.

剛剛看了avaRebel 似乎不太適合我用...

我卡再這一個問題已經三四天囉...>_<  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-21 15:57 隔叶黄莺
让 Job 根据配置来选择逻辑,时不时动动源代码设计上肯定要改善  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-21 16:47 Yeats
job的改善..這就不是我能力所及....
寫jobs的develpoer 很多...
而且還有多是要去把舊的 ap 改寫成Jobs..
我現在已經設計成讓她們最無痛的方式做修改...
只要繼承我的defaultJob.class  其他就解決了.
我這一隻 defaultJob 會自動做很多事情了....

現在唯一的困難點就差hot deploy....>_<

我剛剛有一個Idea ..但是不知道可不可行...
就是我資料庫設定了這4、50 jobs...把這些job 塞到Scheduler的時候..
其實指到的是一個commonJob...所有的工作都是call它..
然後傳參數進去....參數當然就是原本每一個Job的實際程式名稱...
然後這一個commonJob 就用ClassLoader 的方式去把實際要執行的Class
load 進來,並且執行...

也就是說..每次要執行class 都是重新load一次...

這樣不知道有沒有問題....


  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-21 17:04 隔叶黄莺
我做过这种热加载,就是每次执行 Job 时都应该是最新版的 Class,要我给你写个例子吗?  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-21 17:15 Yeats
真的嗎..
真是太好了...有現成的sample code可以參考
可以寄到這邊嗎

yeats..yang@garmin.com

真是感謝...  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-21 17:16 Yeats
Email 打錯....
這一個才對 yeats.yang@garmin.com  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-21 17:30 隔叶黄莺
@Yeats
有IM联系工具吗?  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-21 17:54 Yeats
沒有耶
TM 是不是 QQ

http://im.qq.com/tm/

我再公司不能用 這些東西...公司會擋....
我平常在家都是用MSN or skype

我回家裝好了...  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-22 09:29 隔叶黄莺
@Yeats
昨晚我特地写了一个关于 Hot Deployment 的文章,请参考
简单例子演示如何进行类的热加载(Hot Deployment)
http://www.blogjava.net/Unmi/archive/2008/10/22/235823.html
看是否适用于你的项目,对你的程序某种程度的改造应该是在所难免的,希望以此找到一种更优雅的解决方案。  回复  更多评论
  

# re: Quartz Job Scheduling Framework[翻译]- 中文版目录总汇及内容提要 2008-10-22 21:17 Yeats
wow...我實在不知道該說什麼了
版主您實在太熱心了
真是感謝  回复  更多评论
  



标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2009-02-03 19:18 编辑过