Quartz查询所有的定时任务

 继上一篇创建的博客,查询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"
    }
]

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Quartz是一个功能强大的定时任务框架,可以用于动态创建定时任务。下面是一个示例代码,演示了如何使用Quartz动态创建定时任务: ```java import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; public class QuartzDynamicTask { public static void main(String[] args) throws SchedulerException { // 创建调度器 Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); // 启动调度器 scheduler.start(); // 创建JobDetail JobDetail jobDetail = JobBuilder.newJob(MyJob.class) .withIdentity("myJob", "group1") .build(); // 创建Trigger Trigger trigger = TriggerBuilder.newTrigger() .withIdentity("myTrigger", "group1") .withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?")) // 每5秒执行一次 .build(); // 将JobDetail和Trigger加入调度器 scheduler.scheduleJob(jobDetail, trigger); } public static class MyJob implements Job { @Override public void execute(JobExecutionContext context) throws JobExecutionException { // 定时任务的逻辑 System.out.println("Hello, Quartz!"); } } } ``` 上述代码中,我们首先创建了一个调度器(Scheduler),然后创建了一个JobDetail,用于定义具体的任务逻辑。接着,我们创建了一个Trigger,用于定义触发任务的时间规则。最后,将JobDetail和Trigger加入调度器中,调度器会按照Trigger定义的时间规则执行任务。 需要注意的是,上述代码是Java代码,使用了Quartz的Java API。如果你想在其他语言中使用Quartz,可以查阅相应的文档和示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值