当前位置: 首页 > 工具软件 > cron4j > 使用案例 >

java调度器_cron4j是Java平台的一个调度器(也就是任务调度工具/框架)

越新霁
2023-12-01

Cron4j : A pure Java cron-like scheduler

创立时间:2017年8月20日13:35:01

Maven依赖:

it.sauronsoftware.cron4j

cron4j

2.2.5

前言:

这是一篇针对cron4j官方英文文档的翻译。

虽然官方文档并不难看懂,但是本着高尚的自学精神,再加上暑假有点无聊,我尝试着翻译这篇Java工具包的技术文档。

该翻译并不是来自官方的,仅仅是自学用的翻译,如有翻译错误,请在issue中指出。

本人并仅仅英语四级压线水平,所以文档并没有严格按照语法规范翻译,首先遵从本人自己的理解(如有理解错误也请在issue中指出),再尽量翻译成通俗的语句,要求的是能根据本文快速掌握cron4j工具。一切以实践为标准,我在学习的时候也会先实践,再结合实践翻译到文档中。

在JavaWeb开发中,一些后台业务场景会有需要定时任务的需求,这些定时任务如果人工去执行的话就会显得非常蠢,所以就有了定时任务工具包/框架的出现。

其实流行的定时任务框架就像Quartz这样的,应该是运用到生产环境中比较好的选择,但是Quartz的官方文档结构有点蛋疼(也可能是我没细看),并不能简明直接的让开发者循序渐进的掌握它。而在一些博客中对比也谈到Quartz比Cron4j臃肿一些,这也是增加学习成本的原因之意。它们的性能对比不知道怎么样,不过我猜应该是Quartz要好一点,毕竟持续到近两个月前Quartz还在继续维护当中,而Cron4j最近的发布时间是:28-Dec-2011(膜拜)。

我为什么选择cron4j,是因为最近在学JFinal3.2,里面插件扩展的章节介绍到了cron4j,之前也有思考过定时任务的解决方案,恰好再此了解到它。在学习cron4j的过程中也确实感受到了它的“pure”之意,所以我也愿意花一些时间来去翻译它的官方文档和学习它。

在完成文档的过程中有一点比较难受的是,我每次实践都至少要等上一分钟才能验证结果...

Overview部分:

cron4j是Java平台的一个调度器(也就是任务调度工具/框架),它非常像UNIX系统下的具有进程守护的定时任务工具cron。

有了cron4j,你可以在你规定好的时间内在Java应用程序中执行你指定的任务,而这只需要你制定一些简单的规则。

虽然Java平台已经内置了一个由java.util.Timer类实例化的调度器,但是cron4j走的是和前者不同的另一条路子。

你可以说java.util.Timer调度器是

“从现在开始过5分钟后启动这个任务”

或者说

“从现在开始过5分钟后执行这个任务,然后每10分钟重复执行它”。

这就是java.util.Timer。

而cron4j调度器会让你稍微多做一些复杂的事情, 比如:

“在每个周一的12时执行这个任务”

“每隔5分钟执行这个任务,但是周末期间可以不执行”

“在8:00am到8:00pm之间的每个小时执行一次任务,而在8:00pm到8:00am之间的每5分钟执行一次任务”

“除了7月和8月之外的月份内并且在一周内除了周日之外,每天都执行一次任务”

这些蜜汁操作,想要实现它们你只需要简单的写一小行代码就可以Duang出来。

把cron4j使用到你的项目里面其实非常简单,你只需要掌握一些常用API就足够了。启动定时任务的启动规则必须是一个字符串表达式,它被称为scheduling pattern(调度模式),它的语法等同于UNIX系统中crontab所使用的语法一样。如果你了解过UNIX中crontab的操作,那么恭喜你,你已经掌握本工具的一大半了。如果你不会,don't worry:crontab的调度模式你只需要花上几分钟就能掌握(骗人!),再说了,后面还有documentation给你学习呢。

运行要求:

你可以在任何Java平台使用它。

License:

cron4j is Free Software and it is licensed under LGPL (you will find a copy of the license bundled into the downloadable software distribution).

Feedback

...

Make a donation

...

翻译进度:

第一阶段

时间:2017年8月20日21:03:12

内容:Overview、doc的前三节

第二阶段

时间:2017年8月21日00:01:13

内容:doc第四、五节 第六节的大部分

第三阶段

时间:2017年8月21日22:15:33

内容:doc第七到末节

 类似资料: