当前位置: 首页 > news >正文

网站站建设建技设术技术下载百度app免费下载安装

网站站建设建技设术技术,下载百度app免费下载安装,国外wordpress主题站,网站主机名是什么提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pom的配置1.加注解 二、使用方法1.工程图2.创建工具类 三、controller 实现 前言 提示:这里可以添加本文要记录的大概内容: 提示&a…

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、pom的配置
    • 1.加注解
  • 二、使用方法
    • 1.工程图
    • 2.创建工具类
  • 三、controller 实现


前言

提示:这里可以添加本文要记录的大概内容:

在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

一、pom的配置

 <dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.3.2</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency>

1.加注解

@EnableScheduling
public class BusinessApplication {public static void main(String[] args) {SpringApplication.run(BusinessApplication.class, args);log.info("*********启动成功************");}}

二、使用方法

1.工程图

在这里插入图片描述

2.创建工具类

package com.juyuan.api.scheduled_tasks.pojo;import lombok.Data;@Data
public class QuartzBean {//任务名称private String jobID ;//执行任务类private String jobClass;//cron表达式private String cron;
}
package com.juyuan.api.scheduled_tasks.jop;import org.quartz.*;
import org.springframework.scheduling.quartz.QuartzJobBean;import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;public class SimpleTask extends QuartzJobBean {@Overrideprotected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException{JobDetail jobDetail = jobExecutionContext.getJobDetail();JobKey key = jobDetail.getKey();System. out.println("任务名称为:"+key.getName()+",执行时间为:"+ LocalDateTime.now());System.out.println("=======================添加数据===================================");}}
package com.juyuan.api.scheduled_tasks.utils;import com.juyuan.api.scheduled_tasks.pojo.QuartzBean;
import org.quartz.*;
import org.quartz.impl.matchers.GroupMatcher;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;public class QuartzUtils {/**创建定时任务*@param scheduler 调度器*@param quartzBean 定时任务信息类*/@Beanpublic static void createScheduleJob(Scheduler scheduler, QuartzBean quartzBean){try {Class<? extends Job> aClass = (Class<? extends Job>) Class.forName(quartzBean.getJobClass());JobDetail build = JobBuilder.newJob(aClass).withIdentity(quartzBean.getJobID()).build();//表达式调度构建器CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(quartzBean.getCron());//按新的cronExpression表达式构建一个新的triggerCronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(quartzBean.getJobID()).withSchedule(cronScheduleBuilder).build();scheduler.scheduleJob(build,trigger);} catch (ClassNotFoundException | SchedulerException e) {throw new RuntimeException(e);}}/*根据任务恢复定时任务@param scheduler 调度器任务名称* param jobName*/public static void resumeScheduleJob(Scheduler scheduler, String jobName) {JobKey jobKey = JobKey.jobKey(jobName);try {scheduler.resumeJob(jobKey);} catch (SchedulerException e) {throw new RuntimeException("恢复定时任务失败" + e.getMessage());}}/*** 暂停定时任务*/public static void pauseScheduleJob(Scheduler scheduler, String jobName) {JobKey jobKey = JobKey.jobKey(jobName);try {scheduler.pauseJob(jobKey);} catch (SchedulerException e) {throw new RuntimeException("暂停定时任务失败" + e.getMessage());}}/*** 立即执行定时任务*/public static void runScheduleJob(Scheduler scheduler, String jobName) {JobKey jobKey = JobKey.jobKey(jobName);try {scheduler.triggerJob(jobKey);} catch (SchedulerException e) {throw new RuntimeException("立即执行定时任务失败" + e.getMessage());}}/*** 删除定时任务*/public static void deleteScheduleJob(Scheduler scheduler, String jobName) {JobKey jobKey = JobKey.jobKey(jobName);try {scheduler.deleteJob(jobKey);} catch (SchedulerException e) {throw new RuntimeException("删除定时任务失败" + e.getMessage());}}/*** 获取所有定时任务** @param scheduler 调度器* @return 返回所有定时任务列表*/public static List<JobDetail> getAllScheduleJob(Scheduler scheduler) {try {// 获取所有的JobKeysSet<JobKey> jobKeys = scheduler.getJobKeys(GroupMatcher.anyGroup());// 创建一个列表来存储所有的JobDetail对象List<JobDetail> jobDetails = new ArrayList<>();// 遍历每个JobKey,获取对应的JobDetailfor (JobKey jobKey : jobKeys) {JobDetail jobDetail = scheduler.getJobDetail(jobKey);jobDetails.add(jobDetail);}// 现在,jobDetails列表包含了所有的JobDetail对象// 您可以在这里对这些对象进行处理return jobDetails;} catch (SchedulerException e) {throw new RuntimeException("获取所有定时任务失败" + e.getMessage());}}/*** 获取所有正在运行的定时任务** @param scheduler 调度器* @return 返回所有正在运行的定时任务列表*/public static List<JobDetail> getRunningScheduleJob(Scheduler scheduler) {try {List<JobExecutionContext> executingJobs = scheduler.getCurrentlyExecutingJobs();List<JobDetail> jobDetails = new ArrayList<>();for (JobExecutionContext executingJob : executingJobs) {JobDetail jobDetail = executingJob.getJobDetail();jobDetails.add(jobDetail);}return jobDetails;} catch (SchedulerException e) {throw new RuntimeException("获取所有正在运行的定时任务失败" + e.getMessage());}}/*** 修改定时任务* @param scheduler 调度器*/public static void updateScheduleJob(Scheduler scheduler, QuartzBean quartzBean) {//获取对应的jobKeyTriggerKey triggerKey = TriggerKey.triggerKey(quartzBean.getJobID());//获取执行定时任务的执行方式CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(quartzBean.getCron());try {//按新的cronExpression表达式重新构建triggerCronTrigger character= (CronTrigger)scheduler.getTrigger(triggerKey);character = character.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build();//按新的trigger重新设置job执行scheduler.rescheduleJob(triggerKey, character);} catch (SchedulerException e) {throw new RuntimeException(e);}}}

三、controller 实现

package com.juyuan.api.scheduled_tasks.controller;import com.juyuan.api.park_enterprise_public_construction.entity.ActionPlan;
import com.juyuan.api.park_enterprise_public_construction.service.ActionPlanService;
import com.juyuan.api.scheduled_tasks.pojo.QuartzBean;
import com.juyuan.api.scheduled_tasks.utils.QuartzUtils;import com.juyuan.framework.common.constants.WebConstant;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
public class QuartzBeanController {private final String PATH = WebConstant.API_PATH + "/quartz/";@Autowiredprivate Scheduler scheduler;@Autowiredprivate ActionPlanService actionPlanService;//新增执行定时任务@GetMapping(value = PATH + "add")public void add() {List<ActionPlan> list = actionPlanService.list();for (ActionPlan actionPlan : list) {QuartzBean quartzBean = new QuartzBean();quartzBean.setJobID(actionPlan.getId());quartzBean.setJobClass("com.juyuan.api.scheduled_tasks.jop.SimpleTask");quartzBean.setCron(actionPlan.getFrequency());QuartzUtils.createScheduleJob(scheduler,quartzBean);}}//暂停执行定时任务@GetMapping(value = PATH + "pause")public void pause() {QuartzUtils.pauseScheduleJob(scheduler,"2");}//恢复执行定时任务@GetMapping(value = PATH + "resume")public void resume() {QuartzUtils.resumeScheduleJob(scheduler,"1");}//删除执行定时任务@GetMapping(value = PATH + "delete")public void delete() {QuartzUtils.deleteScheduleJob(scheduler,"2");}//立即执行定时任务@GetMapping(value = PATH + "run")public void run() {QuartzUtils.runScheduleJob(scheduler,"2");}//获取所有定时任务// 获取所有定时任务的接口@GetMapping(value = PATH + "queryAll")public void queryAll() {// 获取所有定时任务列表List<JobDetail> allScheduleJob = QuartzUtils.getAllScheduleJob(scheduler);// 遍历所有定时任务allScheduleJob.forEach(jobDetail -> {// 打印任务名称System.out.println(jobDetail.getKey().getName());// 打印任务组名// System.out.println(jobDetail.getKey().getGroup());// 打印任务描述// System.out.println(jobDetail.getDescription());// 打印任务类名// System.out.println(jobDetail.getJobClass());// 打印任务数据映射// System.out.println(jobDetail.getJobDataMap());});}//修改执行定时任务@GetMapping(value = PATH + "update")public void update() {QuartzBean quartzBean = new QuartzBean();quartzBean.setCron("0/5 * * * *?");quartzBean.setJobID("2");QuartzUtils.updateScheduleJob(scheduler,quartzBean);}}
http://www.wangmingla.cn/news/85348.html

相关文章:

  • 有没有一个网站做黄油视频北京优化核酸检测
  • 网站建设助理工资电商网站对比
  • 如何把自己做的网站放到微信上站长
  • 大企业网站建设公司性能优化大师
  • 建立企业门户网站备案域名出售平台
  • 网络优化网站建设学习用手机制作自己的网站
  • 网站模板素材技能培训班
  • 重庆网站建设套餐微信公众号运营推广方案
  • 响应式网站模板 开源苏州网站制作公司
  • 庐江网站制作网站维护一般怎么做
  • 洪都建设集团有限公司网站青岛百度网站排名优化
  • 做视频类网站需要哪些许可证百度服务热线
  • 太原做网站公司哪家好网站提交收录软件
  • 心悦免做卡领取网站网络推广项目
  • 专业的图纸设计网站视频外链工具
  • 一元夺宝网站怎么做互动营销案例分析
  • 做网站哪家便宜厦门热搜榜百度一下你就知道
  • 小孩子做手工做游戏的网站东营seo整站优化
  • 做诈骗网站高平网站优化公司
  • 网站默认首页怎么设置网站搜索引擎优化诊断
  • 网站页脚seo基础培训教程
  • 顶尖的郑州网站建设湘潭网站制作
  • 做网站的时候怎么把图片往左移seo公司优化方案
  • 网站群管理病毒式营销案例
  • 网站建设背景及意义新的seo网站优化排名 网站
  • 昆明企业网站建设公司凡科网站官网
  • 网站如何做关键词引流seo怎么优化简述
  • wordpress中文伪静态知了seo
  • 企业网站建设变相收取等级保护费在线域名解析ip地址
  • wordpress没有链接地址aso优化是什么