first commit

This commit is contained in:
@jyuhsin
2026-01-14 14:49:41 +08:00
commit 105c955abd
4752 changed files with 911871 additions and 0 deletions
@@ -0,0 +1,53 @@
package com.budwk.app.task.services;
import java.util.List;
/**
* Created by wizzer on 2018/3/19.
*/
public interface TaskPlatformService {
/**
* 判断任务是否存在
*
* @param jobName
* @param jobGroup
* @return
*/
boolean isExist(String jobName, String jobGroup);
/**
* 添加新任务
*
* @param jobName
* @param jobGroup
* @param className
* @param cron
* @param comment
* @param dataMap
*/
void add(String jobName, String jobGroup, String className, String cron, String comment, String dataMap);
/**
* 删除任务
*
* @param jobName
* @param jobGroup
* @return
*/
boolean delete(String jobName, String jobGroup);
/**
* 清除所有任务
*/
void clear();
/**
* 获取cron表达式最近执行时间
*
* @param cronExpression
* @return
*/
List<String> getCronExeTimes(String cronExpression) throws Exception;
List<String> getCronExeTimesPlus(String cronExpression) throws Exception;
}
@@ -0,0 +1,118 @@
package com.budwk.app.task.services.impl;
import com.budwk.app.task.services.TaskPlatformService;
import org.nutz.integration.quartz.QuartzJob;
import org.nutz.integration.quartz.QuartzManager;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.quartz.CronExpression;
import org.quartz.JobKey;
import org.quartz.TriggerUtils;
import org.quartz.impl.triggers.CronTriggerImpl;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* Created by wizzer on 2018/3/19.
*/
@IocBean
public class TaskPlatformServiceImpl implements TaskPlatformService {
@Inject
private QuartzManager quartzManager;
/**
* 判断任务是否存在
*
* @param jobName
* @param jobGroup
* @return
*/
public boolean isExist(String jobName, String jobGroup) {
return quartzManager.exist(new JobKey(jobName, jobGroup));
}
/**
* 添加新任务
*
* @param jobName
* @param jobGroup
* @param className
* @param cron
* @param comment
* @param dataMap
*/
public void add(String jobName, String jobGroup, String className, String cron, String comment, String dataMap) {
QuartzJob qj = new QuartzJob();
qj.setJobName(jobName);
qj.setJobGroup(jobGroup);
qj.setClassName(className);
qj.setCron(cron);
qj.setComment(comment);
qj.setDataMap(dataMap);
quartzManager.add(qj);
}
/**
* 删除任务
*
* @param jobName
* @param jobGroup
* @return
*/
public boolean delete(String jobName, String jobGroup) {
QuartzJob qj = new QuartzJob();
qj.setJobName(jobName);
qj.setJobGroup(jobGroup);
return quartzManager.delete(qj);
}
/**
* 清除任务
*/
public void clear() {
quartzManager.clear();
}
/**
* 获取cron表达式最近执行时间
*
* @param cronExpression
* @return
*/
public List<String> getCronExeTimes(String cronExpression) throws Exception {
List<String> list = new ArrayList<>();
CronTriggerImpl cronTriggerImpl = new CronTriggerImpl();
cronTriggerImpl.setCronExpression(cronExpression);
Calendar calendar = Calendar.getInstance();
Date now = calendar.getTime();
calendar.add(2, 1);
List<Date> dates = TriggerUtils.computeFireTimesBetween(cronTriggerImpl, null, now, calendar.getTime());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (int i = 0; i < dates.size() && i <= 4; ++i) {
list.add(dateFormat.format((Date) dates.get(i)));
}
return list;
}
@Override
public List<String> getCronExeTimesPlus(String cronExpression) throws Exception {
// 创建一个列表来存储执行时间
List<String> executionTimes = new ArrayList<>();
// 创建 CronTriggerImpl 对象,并设置 cron 表达式
CronTriggerImpl cronTrigger = new CronTriggerImpl();
cronTrigger.setCronExpression(new CronExpression(cronExpression));
// 计算未来的执行时间
List<Date> nextExecutionTimes = TriggerUtils.computeFireTimes(cronTrigger, null, 5);
// 格式化日期并添加到执行时间列表中
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (Date date : nextExecutionTimes) {
executionTimes.add(dateFormat.format(date));
}
return executionTimes;
}
}