合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
``` @Configuration public class MyQuartzScheduler { @Autowired private Scheduler scheduler; /** * 开启一个任务 * @throws Exception */ public void startJob(Class<? extends Job> jobClass, Task task) throws Exception{ JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(task.getName(), task.getGroupname()).build(); jobDetail.getJobDataMap().put("task", task); CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(task.getCron()); CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(task.getName(), task.getGroupname()).withSchedule(cronScheduleBuilder).build(); scheduler.scheduleJob(jobDetail, cronTrigger); } /** * 获取任务信息 * @param name * @param group * @return * @throws Exception */ public CronTrigger getJobInfo(String name, String group) throws Exception{ TriggerKey triggerKey = new TriggerKey(name, group); CronTrigger cronTrigger = (CronTrigger) scheduler.getTrigger(triggerKey); return cronTrigger; } /** * 暂停所有任务 * @throws Exception */ public void pauseAllJobs() throws Exception{ scheduler.pauseAll(); } /** * 暂停一个任务 * @param name * @param group * @return * @throws Exception */ public boolean pauseJob(String name, String group) throws Exception{ JobKey jobKey = new JobKey(name, group); JobDetail jobDetail = scheduler.getJobDetail(jobKey); if (jobDetail == null){ return false; } scheduler.pauseJob(jobKey); return true; } /** * 恢复所有任务 * @throws Exception */ public void resumeAllJobs() throws Exception{ scheduler.resumeAll(); } /** * 恢复某个任务 * @param name * @param group * @return * @throws Exception */ public boolean resumeJob(String name, String group)throws Exception{ JobKey jobKey = new JobKey(name, group); JobDetail jobDetail = scheduler.getJobDetail(jobKey); if (jobDetail == null){ return false; } scheduler.resumeJob(jobKey); return true; } /** * 删除任务 * @param name * @param group * @return * @throws Exception */ public boolean deleteJob(String name, String group) throws Exception{ JobKey jobKey = new JobKey(name, group); JobDetail jobDetail = scheduler.getJobDetail(jobKey); if (jobDetail == null){ return false; } scheduler.deleteJob(jobKey); return true; } } ```