Jcrontab Research

Jcrontab的简介和应用

一、Jcrontab的简介
      它是由Java语言编写的日程处理程序,该项目的目的是提供强大的定时处理功能,让我们的应用程序可以按照提供的时间表来执行不同的应用。

二、Jcrontab的特点
      1、在指定的时间表中可执行Classes/Threads/main/EJB/Methods/NativePrograms... 等等这些应用。
      2、提供完全按照Unix的UNIX-POSIX crontab的格式来规定时间。
      3、可存储或读取由文件,数据字典,或通过数据源链接的数据库的信息。
      4、可将执行结果通过电子邮件来查看
      5、非常容易的可以和Web应用服务器结合,Tomcat, Resin, Jetty and Jboss这些服务器已经通过测试和应用,这一切只需要在web.xml中添加load-on-startup直接指定Jcrontab下的loadCrontabServlet,就可以了。
      6、它的设计和部署是高性能并可扩展的。

三、Jcrontab的简单应用
      1、应用它的目的是在规定的时间内执行我们所需要的应用程序,那么,我们先来看看它的时间表文件,实际上就是一个配置文件,由Jcrontab 的某个主类来执行的。时间表文件的格式,可参考如下:

# Tasks planification configuration file.
# IMPORTANT: All the index begin in 0, except day of month and
#       month that begin in 1.
#              minute         0-59
#              hour           0-23
#              day of month   1-31
#              month          1-12
#              day of week    0-6 (0 is Sunday)

# IMPORTANT: The first day of the week is sunday

# Each minute
* * * * * org.jcrontab.tests.TaskTest2 eachMinute
* * * * * org.jcrontab.tests.TaskTest2#testMethod testing params passed to TaskTest2#testMethod
# Each 5 minutes
*/5 * * * * org.jcrontab.tests.TaskTest2 each5Minutes1

其中的时间格式的规定是这样的:第一个*是代表分钟,第二个*是代表小时,第三个*是代表天数,第四个*是代表月数,第五个*是代表星期。例子中的org.jcrontab.tests.TaskTest2 是要执行的类,若没有写明那个方法的话,默认就是执行这个类的main方法,若指明了执行某个方法的话,就直接执行这个类的某个方法。例如:org.jcrontab.tests.TaskTest2#testMethod其后可以带参数,用于这个方法的执行。时间格式的规定还是有些规则的,但大体都是这样的规则:*代表在这个时间段内完全执行指定的类;n-m(n,m均代表一位或两位的数字,还是在规定的时间格式,以下均采用n或m表示),代表必须在n-m这个时间段内执行指定的类;n,m代表在时间n和m这两个规定的时间内执行指定的类;*/n代表每n个时间就执行一次指定类的操作。从这里可以看到它所规定的时间操作是非常灵活的。
      2、在web服务器上的应用:在前面的简介中已经提到过了,就是在web.xml文件中添加上如下操作的代码段:

<!-- This is the loadOnStartupServlet in order to launch jcrontab with the
application server -->
<servlet>
<servlet-name>LoadOnStartupServlet</servlet-name>
<servlet-class>org.jcrontab.web.loadCrontabServlet</servlet-class>
<!-- can overwrite the parameters from jcrontab.properties -->
<!-- simply adding here the right parameters -->
        <init-param>
            <param-name>org.jcrontab.data.file</param-name>
            <param-value>YOURHOME/.jcrontab/thisfileoverwritesjcrontab.properties</param-value>
        </init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Mapping of the StartUp Servlet -->
<servlet-mapping>
<servlet-name>LoadOnStartupServlet</servlet-name>
<url-pattern>/Startup</url-pattern>
</servlet-mapping>
从例子中可以看到必须指定的是LoadOnStartupServlet这个类,它是Jcrontab里执行web操作的接口,通过它来执行所要执行的操作。要指定<load-on-startup>1</load-on-startup>,只要服务器一启动,那么就可以启动定时程序,可以启动Jcrontab程序了。这里可以看出它和web服务器可以很好的链接使用。

      总结,对于Jcrontab的学习才刚刚开始,在以后的学习中会将新的心得补充上。个人感觉它用来处理定时程序是很好的选择,它的应用主要在时间的处理上,灵活方便,形式多元化。对于它的深层应用还要继续学习。本人能力有限,若有什么不对或不妥之处,也是在所难免的。希望大家批评指教。谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值