文档章节

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

北京起航
 北京起航
发布于 2015/06/11 20:21
字数 341
阅读 137
收藏 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;
        }
    }
}
北京起航
粉丝 59
博文 52
码字总数 29304
作品 0
海淀
架构师
私信 提问
加载中
请先登录后再评论。
第十四章:springboot 定时任务

第一步 启动类里面 @EnableScheduling开启定时任务,自动扫描 第二步 编写定时任务类 , 例如 @Componentpublic class MySchedule { } 1、注解 @Component 被容器扫描 2、@Scheduled(、、) 定...

嘴角轻扬30
2019/02/11
31
0
Linux定时器-crontab

在有些情况下,我们需要在类unix的系统中设置一些定时执行的任务,这个时候就可以使用 来设置需要定时执行的任务。下面就来说一下 命令的简单使用,至于具体的原理不深究😁 (又不是不能用...

奔跑嘞大肚皮
2019/12/18
1
0
celery 定时任务时间篇

1、Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务。在实例代码的基础上写个测试方法: 1 #coding:utf-82 from celery.task.schedules import crontab3 from celer...

osc_k6lb5e4x
2019/04/09
1
0
celery 定时任务时间篇

1、Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务。在实例代码的基础上写个测试方法: 1 #coding:utf-8 2 from celery.task.schedules import crontab 3 from cel...

osc_wk8cl8xe
2018/07/25
2
0
Django Celery定时任务和时间设置

1、Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务。在实例代码的基础上写个测试方法: 1 #coding:utf-8 2 from celery.task.schedules import crontab 3 from cel...

osc_imfpapvz
2018/01/10
2
0

没有更多内容

加载失败,请刷新页面

加载更多

在JavaScript中从字符串中删除所有非数字字符 - Strip all non-numeric characters from string in JavaScript

问题: Consider a non-DOM scenario where you'd want to remove all non-numeric characters from a string using JavaScript/ECMAScript. 考虑一个非DOM场景,您希望使用JavaScript / EC......

法国红酒甜
33分钟前
14
0
Quartz的Misfire处理规则 错过任务执行时间的处理机制

调度(scheduleJob)或恢复调度(resumeTrigger,resumeJob)后不同的misfire对应的处理规则 CronTrigger withMisfireHandlingInstructionDoNothing ——不触发立即执行 ——等待下次Cron触发频率...

独钓渔
今天
4
0
如何在Django视图中合并两个或多个查询集? - How to combine two or more querysets in a Django view?

问题: I am trying to build the search for a Django site I am building, and in that search, I am searching in 3 different models. 我正在尝试搜索要构建的Django网站,在该搜索中,我......

javail
今天
5
0
PHP解析/语法错误; 以及如何解决它们? - PHP parse/syntax errors; and how to solve them?

问题: Everyone runs into syntax errors. 每个人都遇到语法错误。 Even experienced programmers make typos. 即使是经验丰富的程序员也会打错字。 For newcomers, it's just part of the......

fyin1314
今天
20
0
OSChina 周三乱弹 —— 公主是大王的,命是自己的。小怪也要养家糊口啊!

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :郭燕的单曲《下半生》 最近听一些轻快的歌 #今日歌曲推荐# 《下半生》 - 郭燕 手机党少年们想听歌,请使劲儿戳(这里) @锦年 :...

小小编辑
今天
38
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部