jCrontab 简介与实现

简介与实现

jcrontab 目前有提供存取文件或数据库, 把执行结果寄发 email, 简单地设置在 Tomcat, Resin, Jetty 及 JBoss 之上, 更是可以取代 cron 单独去执行, 也提供了良好的效能 ^^~


下载位置 jcrontab on sourceforge.net


基本上, 我拿放在 tomcat 的例子来解释, 在 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>c:/tomcat4/webapps/jcrontab/WEB-INF/jcrontab.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>

至于 jcrontab.properties 的设置, 就可以决定你的 cron 的属性要去哪里取 crontab 资料


# 这是设置你的 crontab 数据来源 文件类 
org.jcrontab.data.file = c:/tomcat4/webapps/jcrontab/WEB-INF/crontab
org.jcrontab.data.datasource = org.jcrontab.data.FileSource
org.jcrontab.Crontab.refreshFrequency = 3
# 这是设置你的 crontab 数据来源 数据库类 postgesql 
#org.jcrontab.data.GenericSQLSource.driver = org.postgresql.Driver
#org.jcrontab.data.GenericSQLSource.url = jdbc:postgresql://yourmachine.jcrontab.org:5432/jcrontab
# 这是设置你的 crontab 数据来源 数据库类 mysql 
#org.jcrontab.data.GenericSQLSource.driver = org.gjt.mm.mysql.Driver
#org.jcrontab.data.GenericSQLSource.url = jdbc:mysql://yourmachine.jcrontab.org:3306/jcrontab
#org.jcrontab.data.GenericSQLSource.username = iolalla
#org.jcrontab.data.GenericSQLSource.password = yourpassword
#org.jcrontab.data.datasource = org.jcrontab.data.GenericSQLSource
#org.jcrontab.data.GenericSQLSource.dbDataSource=yourDS
# 这是设置你的 crontab 处理完要发信给谁 
#org.jcrontab.sendMail.to=iolalla@yahoo.com
#org.jcrontab.sendMail.from=jcrontab@yoursystem.com
#org.jcrontab.sendMail.smtp.host=smtp.yahoo.com
#org.jcrontab.sendMail.smtp.user= yourSMTPusername
#org.jcrontab.sendMail.smtp.password=yourSMTPpassword
# 这是设置你的 crontab Logger 模式 
#org.jcrontab.log.Logger=jcrontabplugin.jEditLogger
org.jcrontab.log.Logger=org.jcrontab.log.Log4JLogger
org.jcrontab.log.log4J.Properties=c:/tomcat4/webapps/jcrontab/WEB-INF/log4j.properties
#org.jcrontab.data.FileOpener=file
# 这是设置你的 crontab 参考的假日文件 
#org.jcrontab.data.holidaysource=org.jcrontab.data.HoliDayFileSource
#org.jcrontab.data.holidaysfilesource={$HOME}.jcrontab/holidays
#To change this plz refer to java.text.SimpleDateFormat
#org.jcrontab.data.dateFormat=dd/MM/yyyy

至于, cron 这个文件设置的方法和 unix-like 的 crontab 文件是一样的, 大家可以参考去查询, 类似以下这样, 代表每半小时, 或奇数时候就会执行


30 1,3,5,7,9,11,13,15,17,19,21,23 * * * org.jcrontab.tests.TaskTest2 halfOddHours

如果要采用数据库, 一定要建立 events 这个 table


CREATE TABLE events (
second VARCHAR(64) DEFAULT '0',
minute VARCHAR(64) DEFAULT '*', 
hour VARCHAR(64) DEFAULT '*',
dayofmonth VARCHAR(64) DEFAULT '*',
month VARCHAR(64) DEFAULT '*', 
dayofweek VARCHAR(64) DEFAULT '*',
year VARCHAR(64) DEFAULT '*',
task VARCHAR(255),
extrainfo VARCHAR(255),
businessDays VARCHAR(6) DEFAULT 'true'
);

当所有环境设置完成后, 接著, 你就可以在 web.xml 设置是否启动 jcrontab 帮你作工作排程, 如果你没有设置 load-on-startup, 可以通过手动启动 by /Startup, 至于你要设置其它的, 例如 email, 也可以在 cron 那个文件处理一下 ^^~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值