繁体   English   中英

使用 quartz cron 在另一项工作后 10 分钟运行一项工作

[英]Run a job 10 minutes after another job with quartz cron

基本上我想在 10 分钟后运行监控作业。 为此,我需要在原来工作的实际 cron 上增加 10 分钟。 这 10 分钟就像缓冲区,并期望它足以完成原始工作。 在其他情况下,我的监控工作会提醒我。 假设我使用石英 cron。

我尝试解析 cron,但它导致案例太多,并且很快变得难以理解。

但是 cron 表达式有 *,?, 范围, 增量, 逗号分隔的数字等是否建议这样做?

示例代码:

static String addMinutes(String period) throws ParseException {
    CronExpression cron = new CronExpression(period);
    String[] arr = period.split(" ");
    String minutes = arr[1];
    String hours = arr[2];
    if(minutes.contains(",")){
        
    } else if (minutes.contains("-")) {
        
    } else if (minutes.contains("/")) {
        
    } else if (isInteger(minutes)) {
        int i = Integer.parseInt(minutes);
        i = (i+9) % 59;
        arr[1] = Integer.toString(i);
        //change hour
        if(i > 49 && isInteger(hours)){
            int h = Integer.parseInt(hours);
            h = (h+1) % 24;
            arr[2] = Integer.toString(h);
        }
    }
    return period;
}

如果您需要在一天中的特定时间运行这些任务,您可以试试这个:

00 16 * * * /home/theUser/alca/test1.sh
10 16 * * * /home/theUser/alca/test2.sh

这是两个工作,第二个工作应该在二线。 您会看到第一个作业将在每天下午 4 点运行,第二个作业将在下午 4:10 运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM