cloud-manage-new/src/main/java/cn/com/taiji/manage/util/CronUtil.java

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

package cn.com.taiji.manage.util;

import com.alibaba.fastjson.JSONObject;
import org.quartz.CronExpression;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.TriggerBuilder;

import java.util.Date;


/**
 * 拼接cron表达式
 */
public class CronUtil {
    public String concatCronExpress(JSONObject cron){
        String cronExpression = null;
        String type = (String) cron.get("type");
        Integer callFrequency = (Integer) cron.get("callFrequency");
        String time = (String) cron.get("time");
        if(type.equals("minute") ){
            cronExpression = "0 " + "*/" + callFrequency + " * * * ?"; //     0 */1 * * * ?   每一分钟
            return cronExpression;
        }
        if(type.equals("hours") ){
            if(callFrequency<=2){
                cronExpression = "0 0 " + "*/" + callFrequency + " * * ?"; //     0 0 */8 * * ?   每8小时
            }
            if(callFrequency > 2){
                String sum = "";
                for (int i =0;i<(new Double(24)/new Double(callFrequency));i++){
                    sum = sum + i*callFrequency+",";
                }
                cronExpression = "0 0 " + sum.substring(0,sum.length()-1) + " * * ?";
            }
            return cronExpression;
        }
        if(type.equals("day") ){
            cronExpression = time + " */" + callFrequency + " * ?"; //     0 0 0 1/8 * ?   从1号开始,每8天 0点0时0分
            return cronExpression;
        }
        if(type.equals("week") ){
            cronExpression = time + " ? * " + callFrequency; //     0 0 0 ? * 3,5,7  每周二、四、六 0点0时0分
            return cronExpression;
        }
        if(type.equals("month") ){
            cronExpression = time + " " + callFrequency + " * ?"; //     0 0 0 1,15 * ?    每月1号、15号 0点0时0分
            return cronExpression;
        }
        return null;
    }

    public static CronTrigger getCronTrigger(String cron) {
        if (!CronExpression.isValidExpression(cron)) {
            throw new RuntimeException("cron :" + cron + "表达式解析错误");
        }
        return TriggerBuilder.newTrigger().withIdentity("Caclulate Date").withSchedule(CronScheduleBuilder.cronSchedule(cron)).build();

    }
    public static Date getNextTriggerTime(String cron, Date start) {
后面还有 12 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。