文档章节

crontab工具类 断给定的时间 是否 满足 crontab 表达式.md

北京起航
 北京起航
发布于 2015/06/11 20:21
字数 341
阅读 33
收藏 0

itone.crontab工具类.md

 
/**
* 断给定的时间 是否 满足 crontab 表达式【忽略毫秒】
* 可以接受指定秒数 误差
*
*/
public class CrontabUtils {
   private static final Logger LOGGER = LoggerFactory.getLogger(CrontabUtils.class);
 
    /**
     * 判断给定的时间 是否 满足 crontab 表达式【忽略毫秒】
     *
     * @param date the date to evaluate
     * @return a boolean indicating whether the given date satisfies the cron
     * expression
     */
    public static boolean isMatch(String crontabExpress, Date date) {
        try {
            CronExpression crontabExpression = new CronExpression(crontabExpress);
            return crontabExpression.isSatisfiedBy(date);
        } catch (ParseException e) {
            LOGGER.error(e.getMessage(), e);
            return false;
        }
    }
    public static boolean isMatch(CronExpression cronExpression, Date date) {
        return cronExpression.isSatisfiedBy(date);
    }
 
    /**
     * 判断给定的时间 是否 满足 crontab 表达式【忽略毫秒】 可以接受指定秒数 误差
     * @param cronExpression
     * @param date
     * @param secondsRange  可以接受指定秒数
     * @return
     */
    public static boolean isMatchRange(CronExpression cronExpression,Date date,int secondsRange) {
        Calendar testDateCal = Calendar.getInstance(cronExpression.getTimeZone());
        testDateCal.setTime(date);
        testDateCal.set(Calendar.MILLISECOND, 0);
        Date originalDate = testDateCal.getTime();
        testDateCal.add(Calendar.SECOND, -secondsRange-1);
        Date timeAfter = cronExpression.getTimeAfter(testDateCal.getTime());
        return ((timeAfter != null) && (Math.abs(timeAfter.getTime()-originalDate.getTime())<=secondsRange*1000));
    }
 
    /**
     * 判断给定的时间 是否 满足 crontab 表达式【忽略毫秒】 可以接受指定秒数 误差
     */
    public static boolean isMatchRange(CronExpression cronExpression,long seconds,int secondsRange) {
        return isMatchRange(cronExpression, new Date(seconds * 1000), secondsRange);
    }
    /**
     * 判断给定的时间 是否 满足 crontab 表达式【忽略毫秒】 可以接受指定秒数 误差
     */
    public static boolean isMatchRange(String crontab,Date date,int secondsRange) {
        try {
            CronExpression crontabExpression = new CronExpression(crontab);
            return isMatchRange(crontabExpression,date,secondsRange);
        } catch (ParseException e) {
            LOGGER.error(e.getMessage(), e);
            return false;
        }
    }
}

© 著作权归作者所有

共有 人打赏支持
北京起航
粉丝 55
博文 52
码字总数 29304
作品 0
海淀
架构师
私信 提问
定时任务

Cron crontab crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于...

Recruit
2017/07/22
0
0
树莓派——Cron和Crontab(定时任务)

树莓派——Cron和Crontab(定时任务) Cron是Unix系统的一个配置定期任务的工具,用于定期或者以一定的时间间隔执行一些命令或者脚本;可执行的任务范围可以是每天夜里自动备份用户的home文件...

捍卫机密
2016/11/06
84
0
定时任务工具——CronUtil

牢骚 Java中定时任务使用的最多的我想就是quartz了,但是这个框架太过庞大,而且我也不需要用到这么多东西,使用方法也是比较复杂(官方Demo我实在是无语……)。于是我便寻找新的框架代替(...

路小磊
2015/02/24
0
6
crontab 管理工具

crontab A crontab tool build by golang Crontab 背景: 在实际工作中经常需要在服务器上添加定时任务,当任务多了的时候管理起来就比较麻烦,所以想要有一个方便使用和管理的crontab工具 ...

chunhei2008
2015/01/01
2.5K
0
crontab相关命令及表达式 (Linux系统定时任务)

1.重启crontab服务(root):service crond restart 2.编辑crontab设置(用户):crontab -e 0 8 * /home/hudson/slave/agentReboot.sh >/dev/null 2>&1 3.查看crontab设置(用户):crontab......

Galy_绿
2015/12/30
111
0

没有更多内容

加载失败,请刷新页面

加载更多

《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
7分钟前
0
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
23分钟前
1
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
今天
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
1
0
HashTable和Vector为什么逐渐被废弃

HashTable,不允许键值为null,还一个就是put方法使用sychronized方法进行线程同步,单线程无需同步,多线程可用concurren包的类型。 如编程思想里面说的作为工具类,封闭性做的不好没有一个...

noob_chr
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部