java自动任务定时任务 每3周的周一怎么表示

  一、完整的cron表达式由7位以空格分隔的时间元素组成从左到右分别为:秒、分、时、日期、月份、星期几、年份。其中需要注意的有以下几点:

    2. quartz支持完整的7種时间元素但是由于年份是可选的,所以一般只需要书写前6种即可

    2.1 时间域

    2.2 特殊表示

}

在tomcat中每月一号、每日、每分钟洎动执行指定的任务。

在tomcat中添加监听器,在监听器中设置定时任务

1.1:创建一个基准时间defaultdate(每日8点),用于参照在此时间以后的多长周期内执行操作。

task:TimerTask任务用内部匿名类的方式新建一个即可(当然也可以在外部类中建一个类,用于写任务写法麻烦点),实现run()方法在Run中写你要执行操作即可。

firstTime:任务首次执行时间当系统时间大于firstTime,会立即执行一次任务当系统时间小于firstTime,则等到时间等于firstTime时才执行所以用schedule实现定时任务,最重要的的就是控制这个firstTime

1.3 : 如何判断是每月1号?用Calendar的Calendar.DAY_OF_MONTH每月首天 返回值为1。每天都执行下判断到每月一号时,即可实现每月执行一次

 // 当天8点(默认执行时间)
 // 若当前时间超过了defaultdate时间当天不再执行,则将执行时间sendDate改为明天8点
 * 启动服务器后若此时時间没过8点,等待到了8点自动执行一次,15分钟后再执行一次周而复始
 * 启动服务器后,若此时时间超过8点会立刻执行一次,等到15分钟後再次执行一次周而复始 到了第二天,不会再判断是否是8点这个开始时间,只会判断一次而已
 * 启动服务器后若此时时间没过8点,等待到了8点自动执行一次,24小时后(第二天8点)再执行一次周而复始
 * 启动服务器后,若此时时间已经超过8点则等到24小时后(第二天8点)才执行一次,周而复始
 * 启动服务器后若此时时间没过8点,等待到了8点自动执行判断是否是当前月份的1号,若是则执行一次
 * 24小时后(第二天8点)再执行一次判断(每月1号以后后的29天或30天后才会是下月1号,再执行一次)周而复始 启动服务器后,若此时时间已经超过8点会立刻执行一次,等到下个月1号再次执行一次周而复始
 // 每天执行,若为每月1号才执行
 

3.重新部署项目启动tomcat即可自动执行。

 
}

我要回帖

更多关于 java自动任务 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信