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、它的设计和部署是高性能并可扩展的。
crontab
名称
: crontab
使用权限
: root用户和crontab文件的所有者
语法
:
crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]
说明
:
crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
参数
:
-e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r [UserName]: 删除目前的时程表
-l [UserName]: 列出目前的时程表
-v [UserName]:列出用户cron作业的状态
时程表的格式如下
:
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
由于unix版本不一样,所以部分语法有差别,例如在hp unix aix 中设定间隔执行如果采用*/n 方式将出现语法错误,在这类unix中 ,间隔执行只能以列举方式,详请见例子。
使用方法
:
用VI编辑一个文件 cronfile,然后在这个文件中输入格式良好的时程表。编辑完成后,保存并退出。
在命令行输入
$: crontab cronfile
这样就将cronfile文件提交给c r o n进程,同时,新创建cronfile的一个副本已经被放在/ v a r / s p o o l / c r o n目录中,文件名就是用户名。
例子
:
每月每天每小时的第 0 分钟执行一次 /bin/ls :
0 * * * * /bin/ls
在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup :
*/20 6-12 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信给 alex@domain.name :
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"
晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
在hp unix,中,每20分钟执行一次,表示为:0,20,40 * * * * 而不能采用*/n方式,否则出现语法错误
注意
:
当程式在你所指定的时间执行后,系统会寄一封信给你,显示该程式执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可。
分享到:
相关推荐
这个框架模仿了Linux中的cron服务,允许用户自定义时间规则来执行任务,而无需依赖操作系统级别的定时器。 在Jcrontab中,你可以创建复杂的定时规则,比如每天的某个特定时间、每周的某一天或每月的某一天执行任务...
# 基于Python和Django框架的Jcrontab任务管理系统 ## 项目简介 Jcrontab是一个基于Python 3.6和Django 1.8开发的后台管理系统,旨在提供任务管理和企业微信消息推送功能。该系统允许用户创建、编辑、删除和查看...
jcrontab.jar jcrontab.jar下载 jcrontab jcrontab下载 java 定时任务 Java定时任务 绝对类路径
Jcrontab是由Java语言编写的日程处理程序,它目的是提供强大的定时处理功能,让我们的应用程序可以按照提供的时间表来执行不同的应用。Jcrontab的特点 1、在指定的时间表中可执行Classes/Threads/main/EJB/Methods/...
《jCrontab与SQLite数据库的完美融合——构建高效定时任务系统》 jCrontab是一款在Java环境中广泛使用的任务调度库,它以其灵活性和强大的功能,深受开发者喜爱。本文将深入探讨如何利用jCrontab与SQLite数据库进行...
JCronTab是Java任务调度的工具类,语法和crontab类似。 JCronTab支持多种任务调度的持久化方法,包括普通文件、数据库以及 XML 文件进行持久化; JCronTab能方便地与 Web 应用服务器相结合,只需要在Web应用程序的...
Jcrontab-2.0-RC0.jar
1、从数据库中获取定时任务执行; 2、在数据库中修改定时任务后,执行任务也可以更新(刷新间隔时间); 3、适应于spring 于quartz不能...6、更多jcrontab相关知识,请在网上搜索,附件旨在提供一个可以用的示例demo 。
在实际项目中,jCrontab常与Spring、Quartz等框架结合使用,实现更复杂的任务调度需求。例如,通过Spring的Job和Trigger接口,可以方便地将jCrontab任务纳入Spring容器统一管理,实现任务的生命周期控制。 **5. ...
JCrontab是一个Java库,用于实现类似Unix cron的定时任务调度功能。在这个简单入门实例中,我们将了解如何在JavaWeb项目中集成JCrontab来执行周期性任务。 首先,我们需要下载JCrontab的jar包,这里提到的是...
当前很多开源项目也提供了比较全面的调度功能,如quartz、jcrontab、JobServer等,在这里我介绍一种比较简单的调度,没有quartz那么复杂,目的在于实用就行,这种调度就是spring提供的调度功能,该调度功能基于...
在Java中,实现定时任务的方法多种多样,其中Quartz是一个广泛应用的开源作业调度框架,它提供了丰富的功能来创建、调度和管理任务。 Quartz是一个完全由Java编写的开源作业调度框架,它可以用来在Java应用程序中...
`Quartz`是一个开源的、强大的、灵活的任务调度框架,它可以实现更复杂的任务调度逻辑,例如支持Cron表达式,允许更精确地控制任务的执行时间。 使用`Quartz`创建一个简单的任务调度示例: ```java JobDetail job ...
本文旨在深入探讨几种常见的任务调度在Java中的实现方式,包括`Timer`、`ScheduledExecutor`、开源工具包`Quartz`以及`JCronTab`,并对其特性进行对比分析,以帮助开发者根据具体需求选择最适合的方案。 #### Timer...
`Quartz`是一个功能全面的作业调度框架,支持复杂的调度策略,可以创建、调度、跟踪和管理大量作业,适合企业级应用。而`JCronTab`则是一个轻量级的JVM定时任务库,它的API简洁,易于理解和使用,特别适合简单的定时...
Quartz是一个功能全面的作业调度框架,支持复杂的调度规则,如表达式、作业集群和持久化等。而JCronTab则提供了一个轻量级的解决方案,允许开发者使用类似Unix cron的表达式来定义任务的执行计划。 总结来说,Java...
此外,还有诸如Quartz、Flux Scheduler和jcrontab等第三方Java作业调度框架。 在Spring 2.x版本中,Spring已经提供了对`Timer`和Quartz的集成支持,通过`FactoryBean`进行配置,还包含线程池调度的抽象类,隐藏了...