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 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
