继上一篇创建的博客,查询Quartz的所有定时任务
import com.collect.engine.vo.QuartzJobsVO;
import lombok.extern.slf4j.Slf4j;
import org.quartz.*;
import org.quartz.impl.matchers.GroupMatcher;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* @Author gaomy
* @Date 2021/11/3 17:54
* @Description
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping("/quartz")
public class ManageQuartzJobs {
@Autowired
private Scheduler scheduler;
@GetMapping("/getAllJobs")
public List<QuartzJobsVO> getAllJob(){
GroupMatcher<JobKey> matcher = GroupMatcher.anyJobGroup();
Set<JobKey> jobKeys = null;
List<QuartzJobsVO> jobList = new ArrayList();
try {
jobKeys = scheduler.getJobKeys(matcher);
for (JobKey jobKey : jobKeys) {
List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);
for (Trigger trigger : triggers) {
QuartzJobsVO job = new QuartzJobsVO();
job.setJobDetailName(jobKey.getName());
job.setGroupName(jobKey.getGroup());
job.setJobCronExpression("触发器:" + trigger.getKey());
Trigger.TriggerState triggerState = scheduler.getTriggerState(trigger.getKey());
job.setStatus(triggerState.name());
if (trigger instanceof CronTrigger) {
CronTrigger cronTrigger = (CronTrigger) trigger;
String cronExpression = cronTrigger.getCronExpression();
job.setJobCronExpression(cronExpression);
}
jobList.add(job);
}
}
} catch (SchedulerException e) {
e.printStackTrace();
}
return jobList;
}
}
返回值如下
[
{
"jobDetailName": "JobDetail-17",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-17",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-15",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-15",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-11",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-11",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-33",
"jobCronExpression": "/30 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-33",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-13",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-13",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-35",
"jobCronExpression": "/30 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-35",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-31",
"jobCronExpression": "/30 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-31",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-19",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-19",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-26",
"jobCronExpression": "/30 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-26",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-28",
"jobCronExpression": "/10 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-28",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-22",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-22",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-24",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-24",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-20",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-20",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-5",
"jobCronExpression": "/15 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-5",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-9",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-9",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-14",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-14",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-16",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-16",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-10",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-10",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-32",
"jobCronExpression": "/30 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-32",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-12",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-12",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-34",
"jobCronExpression": "/30 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-34",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-30",
"jobCronExpression": "/12 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-30",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-18",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-18",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-25",
"jobCronExpression": "/30 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-25",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-23",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-23",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-29",
"jobCronExpression": "/13 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-29",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-21",
"jobCronExpression": "1 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-21",
"status": "NORMAL"
},
{
"jobDetailName": "JobDetail-27",
"jobCronExpression": "/10 * * * * ?",
"groupName": "3189f717470a4b2c85dc334e3a5b3a16-27",
"status": "NORMAL"
}
]