java批处理程序的crontab的好替代品?

时间:2011-07-10 17:48:00

标签: java osgi quartz-scheduler crontab scheduler

我一直在寻找我公司当前批处理系统的替代品( java SE + crontab ),因为有很多java代码/ shell脚本重复,大多数工作都是ETL而且做的非常相似的步骤,我也希望提供平台独立性而不是依赖于crontab,更具体的是我们的工作角色,当前的创造就业步骤是这样的:

  1. 开发符合业务需求的java程序。
  2. 在类似环境的生产中进行测试,直到满足业务需求为止。
  3. 将其传递给带有shell脚本的生产服务器,该脚本提供文件维护,java prgram执行和错误处理例程(避免运行同名的2个进程,支持的邮件日志和程序错误时的开发人员,检查输出文件如果java程序与接口相关,则在java程序结束后存在,并指定重复数据(该程序运行的频率)。
  4. 大部分相同的逻辑被设计和开发成一个系统,其中包含这些程序或“接口”(即他们在那里称之为)的通用例程独立完成(通常使用复制粘贴代码,因为大多数例程都相似) ,但我仍然缺少一个非常重要的部分,我需要帮助,这涉及我使用的调度程序实现,我需要它来满足这两个需求之一

    - 我想保证每当我停止调度服务器进行系统更新(由于添加新作业等)或其他原因时,由于系统停机而无法运行的那些作业(例如3由于系统停机而无法在下午3:00运行的作业,在服务器重新启动时运行,即使它们各自的调度时间已经消失。

    如果第一件事不可能,那么:

    - 我需要一种方法来使用新作业更新调度程序,并且还可以更新提供这些作业的jar,而无需重新启动调度程序(类似于OSGi)。

    这些条件中的任何一个都满足我的要求,并且会结束我对替换的搜索,我查看了Quartz,Oddjob(这是一个使用此调度程序生产的调度程序,但每次添加新作业时都需要重新启动)库,不满足我的需求)和OSGi使用应用服务器,但我正在寻找更好的建议,如果你也知道更好的选择,他们也非常感激。

2 个答案:

答案 0 :(得分:1)

您可能还想查看http://jcrontab.sourceforge.net/

Jcrontab是一个用Java编写的调度程序。项目目标是为Java项目提供功能齐全的计划。

答案 1 :(得分:1)

好吧,发现我想要的东西,Quartz可以解决这个问题,但是我必须开发自己的UI管理,我必须有这个项目http://code.google.com/p/myschedule/,其中包含我需要的所有内容(添加,删除,恢复作业) ,运行webapp很便宜,因为你可以使用tomcat。现在我可以专注于设计可重复使用的工作:),感谢上帝为Quartz!