导航:首页 > 编程语言 > cron解析java

cron解析java

发布时间:2022-01-20 04:35:02

java spring 中(cron = "0 0 */2 * * ")表示多久运行一次

cron = "0 0 */2 * * ?"
表示在任意分钟数后加2秒执行该定时任务

具体配置参数如下:
Cron-Expression in Quartz

表达式用" "分隔为7个部分,每部分含义如下

Field Name lowed Values Allowed Special Characters
Seconds 0-59 , - * /
Minutes 0-59 , - * /
Hours 0-23 , - * /
Day-of-month 1-31 , - * ? / L W C
Month 1-12 or JAN-DEC , - * /
Day-of-Week 1-7 or SUN-SAT , - * ? / L C #
Year (Optional) empty, 1970-2099 , - * /
补充说明:
'*'代表 '任何值'
'?'也代表 '任何值', 但只用于 Day-of-month 和 Day-of-Week, 当其中一个设置了条件时,另外一个就要用'?' 来表示 '任何值'
'-'用来表示范围, 比如 Day-of-month 5-10 代表 5号到10号
','用来添加附加的参数,比如 Hours 4,14 代表 上午4点和下午两点
'/'用来代表增量以用来循环,比如 Hours 2/6 代表 2点,8点,下午2点,下午8点
'L'用于 Day-of-month 和 Day-of-Week, 代表最后1天, 在Day-of-month中只用'L'就可以,在Day-of-week中用 'nL' 来代表是最后一个星期n
'W'用于 Day-of-month, 代表最近工作日,比如 '15W', 如果15号那天是周六则取14号周五,如果是周日则取16号周一,其他情况不变
'LW' 代表当月最后一个工作日
'#'用于 Day-of-Week, 'n#m'用于代表当月第m个 "周n"(根据n在week中的定义确定)
其实Spring中任务调度cronExpression的配置参数和上面的一些配置几乎是一样的(他只不过从秒开始quartz 是一个很不错的spring 定时任备调度jar)

㈡ 如何在cron下运行Java程序并导入jar

JAR 文件包JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式

㈢ 页面的时间参数转化为corn表达式,Java程序

2013年9月27日到2014年9月27日之间---------这个需求无法写到cron里。你可以用另外的定时器A去检查,如果定时器列表里有过期的,就清理掉,这样就OK了。
下面是“每个星期五当天,从早上8点到下午4点,每隔2小时执行一次”的表达式

1,1,8-16/2,*,*,5,*

㈣ 如何根据cron表达式获取下个执行时间

年,分分钟就能解决你的问题。既然,你要真正的算法。没办法,我看了一下类库中的源码,把其中针对你需要的部分给抠出来了。如果直接用这个类库的话,贴不进去。。你可以看看,哥只能帮你到这儿了。。。其实Java有个第三方的类库。名称叫做quartz。可以满足你的要求。
代码太长

㈤ 如何利用crontab执行java文件

噢,你把这个文件保存下来嘛。
然后你运行 crontab -e
然后在vi编辑器里输入
*/5 * * * * root ./temp.sh
然后保存就可以了。
crontab的具体用法我复一个文档给你。

噢,下午已有一个高手回答了,答得很简略也很实用。你可以听他的。

*************************************************************
linux 下的crontab如何写
wscdlzhom发布于 2008-2-24 | 439次阅读 字号: 大 中 小 (网友评论 0 条) 我要评论
crontab命令的功能是在一定的时间间隔调度一些命令的执行。在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。

cron 的主配置文件是 /etc/crontab,它包括下面几行:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

前四行是用来配置 cron 任务运行环境的变量。SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell);PATH 变量定义用来执行命令的路径。cron 任务的输出被邮寄给 MAILTO 变量定义的用户名。如果 MAILTO 变量被定义为空白字符串(MAILTO=""),电子邮件就不会被寄出。HOME 变量可以用来设置在执行命令或脚本时使用的主目录。

/etc/crontab 文件中的每一行都代表一项任务,它的格式是:

minute hour day month dayofweek command

minute — 分钟,从 0 到 59 之间的任何整数

hour — 小时,从 0 到 23 之间的任何整数

day — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)

month — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)

dayofweek — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等)

command — 要执行的命令(命令可以是 ls /proc >> /tmp/proc 之类的命令,也可以是执行你自行编写的脚本的命令。)

在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。

整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。

用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。

正斜线(/)可以用来指定间隔频率。在范围后加上 / 意味着在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。

开头为井号(#)的行是注释,不会被处理。

如你在 /etc/crontab 文件中所见,它使用 run-parts 脚本来执行 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 目录中的脚本,这些脚本被相应地每小时、每日、每周、或每月执行。这些目录中的文件应该是 shell 脚本。

如果某 cron 任务需要根据调度来执行,而不是每小时、每日、每周、或每月地执行,它可以被添加到 /etc/cron.d 目录中。该目录中的所有文件使用和 /etc/crontab 中一样的语法。

# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo 30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
# run custom script the first day of every month at 4:10AM 10 4 1 * * /root/scripts/backup.sh

同时在写crontab执行的.sh脚本时要注意添加权限和路径。例如:

crontab语句:30 14 * * * /opt/apps/ems_query/bin/start.sh

相应的脚本:
source /home/tvgame/.bash_profile。

㈥ Java怎么把分钟数或者毫秒值转换为Quartz cron表达式,例如把5分钟转换后为(“0 0/5 * * * ”)急急急

参考如下内容:

CronTrigger
CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表。
CronTrigger,你可以指定触发的时间表如“每星期五中午”,或“每个工作日9:30时”,甚至“每5分钟一班9:00和10:00逢星期一上午,星期三星期五“。
即便如此,SimpleTrigger一样,CronTrigger拥有的startTime指定的时间表时生效,指定的时间表时,应停止(可选)结束时间。
Cron Expressions
cron的表达式被用来配置CronTrigger实例。 cron的表达式是字符串,实际上是由七子表达式,描述个别细节的时间表。这些子表达式是分开的空白,代表:
1. Seconds
2. Minutes
3. Hours
4. Day-of-Month
5. Month
6. Day-of-Week
7. Year (可选字段)
例 "0 0 12 ? * WED" 在每星期三下午12:00 执行,
个别子表达式可以包含范围, 例如,在前面的例子里("WED")可以替换成 "MON-FRI", "MON, WED, FRI"甚至"MON-WED,SAT".
“*” 代表整个时间段.
每一个字段都有一套可以指定有效值,如
Seconds (秒) :可以用数字0-59 表示,
Minutes(分) :可以用数字0-59 表示,
Hours(时) :可以用数字0-23表示,
Day-of-Month(天) :可以用数字1-31 中的任一一个值,但要注意一些特别的月份
Month(月) :可以用0-11 或用字符串 “JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC” 表示
Day-of-Week(每周):可以用数字1-7表示(1 = 星期日)或用字符口串“SUN, MON, TUE, WED, THU, FRI and SAT”表示
“/”:为特别单位,表示为“每”如“0/15”表示每隔15分钟执行一次,“0”表示为从“0”分开始, “3/20”表示表示每隔20分钟执行一次,“3”表示从第3分钟开始执行
“?”:表示每月的某一天,或第周的某一天
“L”:用于每月,或每周,表示为每月的最后一天,或每个月的最后星期几如“6L”表示“每月的最后一个星期五”
“W”:表示为最近工作日,如“15W”放在每月(day-of-month)字段上表示为“到本月15日最近的工作日”
““#”:是用来指定“的”每月第n个工作日,例 在每周(day-of-week)这个字段中内容为"6#3" or "FRI#3" 则表示“每月第三个星期五”

㈦ java中怎样解析quartz cron

quartz 有库,直接使用就可以的了

~

㈧ java cron每23个小时执行一次怎么写啊

0 0 0/23 * * ?
0/23 好像是23小时为增量执行一次 我不敢保证

㈨ java中的定时任务@Scheled中的cron每隔3天执行一次的表达式怎么写,

假如15:00:00执行
0 0 15 */3
这样试试

每隔三天就是不管它是几月几号,也不会管是不是闰年或闰月。一律隔三天就是了。

㈩ java 定时任务的几种实现方式

  1. JDK 自带的定时器实现

    // schele(TimerTask task, long delay) 延迟 delay 毫秒 执行
    // schele(TimerTask task, Date time) 特定时间执行
    public static void main(String[] args) {
    for (int i = 0; i < 10; ++i) {
    new Timer("timer - " + i).schele(new TimerTask() {
    @Override
    public void run() {
    println(Thread.currentThread().getName() + " run ");
    }
    }, 1000);
    }
    }
    2. Quartz 定时器实现

    //首先我们需要定义一个任务类,比如为MyJob02 ,
    //该类需要继承Job类,然后添加execute(JobExecutionContext context)方法,在
    //这个方法中就是我们具体的任务执行的地方。
    //由希望由调度程序执行的组件实现的接口
    public class MyJob02 implements Job {
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
    // TODO Auto-generated method stub
    // 执行响应的任务.
    System.out.println("HelloJob.execute,"+new Date());
    }
    }

    public class QuartzTest5 {

    public static void main(String[] args) throws Exception {
    //SchelerFactory 是一个接口,用于Scheler的创建和管理
    SchelerFactory factory = new StdSchelerFactory();
    //从工厂里面拿到一个scheler实例
    //计划表(可能翻译的不太贴切),现在我们有了要做的内容,
    //与调度程序交互的主要API
    /*
    * Scheler的生命期,从SchelerFactory创建它时开始,
    到Scheler调用shutdown()方法时结束;Scheler被创建后,
    可以增加、删除和列举Job和Trigger,以及执行其它与调度相关的操作
    (如暂停Trigger)。但是,Scheler只有在调用start()方法后,
    才会真正地触发trigger(即执行job)
    */
    Scheler scheler = factory.getScheler();
    //具体任务.
    //用于定义作业的实例
    //JobBuilder - 用于定义/构建JobDetail实例,用于定义作业的实例。
    JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").build();


    //Trigger(即触发器) - 定义执行给定作业的计划的组件
    //TriggerBuilder - 用于定义/构建触发器实例
    CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
    .withSchele(CronScheleBuilder.cronSchele("0/1 * * * * ?")).build();
    scheler.scheleJob(job, trigger);
    scheler.start();


    }
    3. Spring boot 任务调度(这个非常容易实现)

    /*
    * 开启对定时任务的支持
    * 在相应的方法上添加@Scheled声明需要执行的定时任务。
    */
    @EnableScheling
    //@EnableScheling注解来开启对计划任务的支持
    public class Application {

    public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
    }
    }

    @Component
    public class ScheledTasks {
    private Logger logger = LoggerFactory.getLogger(ScheledTasks.class);
    private int i=0;
    //0 0 0 2 * ?
    @Scheled(cron="* * * 2 * ?")
    //@Scheled 注解用于标注这个方法是一个定时任务的方法
    public void testFixDelay() {
    logger.info("执行方法"+i++);
    }

阅读全文

与cron解析java相关的资料

热点内容
吕良伟演的释迦牟尼什么电影 浏览:129
288tv 浏览:892
欧美电影视频在线网站 浏览:719
免费电影无需下载 浏览:110
惊变解说 浏览:743
免费看sf小说的网站 浏览:145
有小说 图片 视频的网站 浏览:124
360大数据中心副总裁 浏览:507
微信影院有哪些 浏览:824
男人不知道小电影的网址 浏览:978
noteexpress样式文件夹 浏览:854
外国电影女子自慰家人来给过生日 浏览:788
带颜色的系统爽文 浏览:934
大胖二愣三柱四猴的电影 浏览:2
哪里可以看上影没多久的电影 浏览:774
四轴联动编程软件哪个好 浏览:268
看客电影在线观看 浏览:467
详细写肉的都市小说 浏览:580
看那种片的网址 浏览:727
大尺度的同性电影 浏览:447

友情链接