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

免费建立自己的网站代理网页设计图片怎么插

免费建立自己的网站代理,网页设计图片怎么插,柳州集团学校网站建设,硬盘做网站空间springboot整合quartz#xff0c;实现数据库方式执行定时任务。把定时任务信息存进数据库#xff0c;项目启动后自动执行定时任务。 1.引入依赖包#xff1a; dependency groupIdorg.springframework.boot/groupId ar…springboot整合quartz实现数据库方式执行定时任务。把定时任务信息存进数据库项目启动后自动执行定时任务。 1.引入依赖包 dependency             groupIdorg.springframework.boot/groupId             artifactIdspring-boot-starter-quartz/artifactId         /dependency 2.配置yml spring:   # quartz   quartz:     #相关属性配置     properties:       org:         quartz:           scheduler:             instanceName: DefaultQuartzScheduler             instanceId: AUTO           jobStore:             class: org.quartz.impl.jdbcjobstore.JobStoreTX             driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate             tablePrefix: QRTZ_             isClustered: false             clusterCheckinInterval: 10000             #以指示JDBCJobStore将JobDataMaps中的所有值都作为字符串因此可以作为名称             #- 值对存储而不是在BLOB列中以其序列化形式存储更多复杂的对象。             #从长远来看这是更安全的因为您避免了将非String类序列化为BLOB的类版本问题。             useProperties: false           threadPool:             class: org.quartz.simpl.SimpleThreadPool             threadCount: 10             threadPriority: 5             threadsInheritContextClassLoaderOfInitializingThread: true       # 数据库方式     job-store-type: jdbc     datasource:     username: root     password: 123456     url: jdbc:mysql://localhost:3306/quartz_test?useUnicodetruecharacterEncodingutf-8useSSLtrueserverTimezoneUTC     driver-class-name: com.mysql.cj.jdbc.Driver   server:   port: 8080 3.后端编码 controller层 Controller RequestMapping(value /job) Slf4j public class JobController {       Autowired     private IJobService jobService;           PostMapping(value /add)     ResponseBody     public Result addJob(RequestBody JobInfo jobInfo) {         return jobService.addJob(jobInfo);     }       GetMapping(value /getAllJobs)     ResponseBody     public ListJobInfo getAllJobs() {         return jobService.getAllJobs();     }       PostMapping(value /pause)     ResponseBody     public Result pauseJob(String name, String group) {         return jobService.pauseJob(name,group) ? Result.success() : Result.error();     }       PostMapping(value /resume)     ResponseBody     public Result resumeJob(String name, String group) {         return jobService.resumeJob(name,group) ? Result.success() : Result.error();     }       PostMapping(value /reschedule)     ResponseBody     public Result reScheduleJob(String name, String group, String cron) {         return jobService.reScheduleJob(name, group, cron) ? Result.success() : Result.error();     }       PostMapping(value /delete)     ResponseBody     public Result deleteJob(String name, String group) {         return jobService.deleteJob(name,group) ? Result.success() : Result.error();     }       /**      * description 校验是否是合法cron表达式      * param  cron      * return  com.cxh.cxhquartz.common.Result      **/     PostMapping(value /checkCron)     ResponseBody     public Result checkCron(String cron) {         boolean valide false;         try {             valide CronExpression.isValidExpression(cron);         }catch (Exception e){             log.error(e.getMessage());         }         return valide ? Result.success() : Result.error();     } } service层 public interface IJobService {       /**      * description 查询所有任务      * param      * return  java.util.Listcom.cxh.cxhquartz.quartz.JobInfo      **/      ListJobInfo getAllJobs();     /**      * description 恢复任务      * param  jobName      * Param  jobGroup      * return  boolean      **/      boolean resumeJob(String jobName,String jobGroup);     /**      * description 停止任务      * param  jobName      * Param  jobGroup      * return  boolean      **/      boolean pauseJob(String jobName,String jobGroup);     /**      * description 修改任务执行周期表达式      * param  jobName      * Param  jobGroup      * Param  cronExpression      * return  boolean      **/      boolean reScheduleJob(String jobName,String jobGroup,String cronExpression);     /**      * description 删除任务      * param  jobName      * Param  jobGroup      * return  boolean      **/      boolean deleteJob(String jobName,String jobGroup);     /**      * description 新增任务      * param  jobInfo      * return  int      **/     Result addJob(JobInfo jobInfo);      /**       * description 判断任务是否存在       * param  jobKey       * return  int       **/      int isJobExist(JobKey jobKey); } Slf4j Service public class JobServiceImpl implements IJobService {       Autowired     private Scheduler scheduler;       Override     public ListJobInfo getAllJobs() {         ListJobInfo jobInfoList new ArrayList();         try{             ListString groupList scheduler.getJobGroupNames();             for(String group : groupList){                 GroupMatcherJobKey groupMatcher GroupMatcher.groupEquals(group);                 SetJobKey jobKeySet scheduler.getJobKeys(groupMatcher);                 for(JobKey jobKey : jobKeySet){                     JobInfo jobInfo new JobInfo();                     JobDetail jobDetail scheduler.getJobDetail(jobKey);                     jobInfo.setJobname(jobKey.getName());                     jobInfo.setJobgroup(jobKey.getGroup());                     jobInfo.setJobclassname(jobDetail.getJobClass().getName());                     Trigger trigger scheduler.getTrigger(TriggerKey.triggerKey(jobKey.getName(), jobKey.getGroup()));                     if(trigger ! null){                         Trigger.TriggerState state scheduler.getTriggerState(TriggerKey.triggerKey(jobKey.getName(), jobKey.getGroup()));                         jobInfo.setTriggername(jobKey.getName());                         jobInfo.setTriggergroup(jobKey.getGroup());                         try{                             CronTrigger cronTrigger (CronTrigger) trigger;                             jobInfo.setCronexpression(cronTrigger.getCronExpression());                         } catch (Exception e){                             log.error(e.getMessage());                         }                         if(trigger.getNextFireTime() ! null){                             SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);                             jobInfo.setNextfiretime(sdf.format(trigger.getNextFireTime()));                         }                         jobInfo.setDescription(jobDetail.getDescription());                         jobInfo.setState(state.name());                         jobInfo.setId(UUID.randomUUID().toString());                         jobInfoList.add(jobInfo);                     } else {                         jobInfo.setState(OVER);                         jobInfo.setId(UUID.randomUUID().toString());                         jobInfoList.add(jobInfo);                     }                 }             }         } catch (Exception e){             log.error(e.getMessage());         }         return jobInfoList;     }       Override     public boolean resumeJob(String jobName, String jobGroup) {         boolean flag true;         try{             scheduler.resumeJob(JobKey.jobKey(jobName, jobGroup));         } catch (Exception e){             flag false;             log.error(e.getMessage());         }         return flag;     }       Override     public boolean pauseJob(String jobName, String jobGroup) {         boolean flag true;         try{             scheduler.pauseJob(JobKey.jobKey(jobName, jobGroup));         } catch (Exception e){             flag false;             log.error(e.getMessage());         }         return flag;     }       Override     public boolean reScheduleJob(String jobName, String jobGroup, String cronExpression) {         boolean flag true;         try{            Trigger.TriggerState state scheduler.getTriggerState(TriggerKey.triggerKey(jobName, jobGroup));            CronTrigger cronTrigger (CronTrigger) scheduler.getTrigger(TriggerKey.triggerKey(jobName, jobGroup));            if(cronTrigger ! null cronExpression ! null !cronTrigger.getCronExpression().equals(cronExpression)){                CronTrigger cronTriggerNew TriggerBuilder.newTrigger().withIdentity(jobName, jobGroup).withSchedule(CronScheduleBuilder.cronSchedule(cronExpression)).build();                scheduler.rescheduleJob(TriggerKey.triggerKey(jobName, jobGroup), cronTriggerNew);                if(state.name().equals(PAUSED)){                    this.pauseJob(jobName, jobGroup);                }            }         } catch (Exception e){             flag false;             log.error(e.getMessage());         }         return flag;     }       Override     public boolean deleteJob(String jobName, String jobGroup) {         boolean flag true;         try{             List? extends Trigger triggerList scheduler.getTriggersOfJob(JobKey.jobKey(jobName, jobGroup));             if(triggerList.size() 0){                 if(!PAUSED.equals(scheduler.getTriggerState(TriggerKey.triggerKey(jobName, jobGroup)).name())){                     scheduler.pauseTrigger(TriggerKey.triggerKey(jobName, jobGroup));                 }                 scheduler.unscheduleJob(TriggerKey.triggerKey(jobName, jobGroup));             }             scheduler.deleteJob(JobKey.jobKey(jobName, jobGroup));         } catch (Exception e){             flag false;             log.error(e.getMessage());         }         return flag;     }       Override     public Result addJob(JobInfo jobInfo) {         int isJobExist this.isJobExist(JobKey.jobKey(jobInfo.getJobname(), jobInfo.getJobgroup()));         if(isJobExist 1){             return Result.error(任务已存在);         }         try{             JobDetail jobDetail null;             if(isJobExist 0){                 jobDetail scheduler.getJobDetail(JobKey.jobKey(jobInfo.getJobname(), jobInfo.getJobgroup()));             } else if(isJobExist -1){                 jobDetail JobBuilder.newJob(                         (Class? extends Job) Class.forName(jobInfo.getJobclassname()))                         .withIdentity(jobInfo.getJobname(), jobInfo.getJobgroup())                         .withDescription(jobInfo.getDescription())                         .storeDurably().build();             }             //如果jobInfo的cron表达式为空则创建常规任务反之创建周期任务             if(jobInfo.getCronexpression() ! null){                 CronTrigger cronTrigger TriggerBuilder.newTrigger().withIdentity(jobInfo.getTriggername(), jobInfo.getTriggergroup())                         .withSchedule(CronScheduleBuilder.cronSchedule(jobInfo.getCronexpression()))                         .build();                 scheduler.scheduleJob(jobDetail, cronTrigger);               } else {                 SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);                 Trigger trigger TriggerBuilder.newTrigger().withIdentity(jobInfo.getJobname(), jobInfo.getJobgroup())                         .startAt(sdf.parse(jobInfo.getNextfiretime()))                         .withSchedule(SimpleScheduleBuilder.simpleSchedule().withRepeatCount(0))                         .build();                 scheduler.scheduleJob(jobDetail, trigger);             }         } catch (SchedulerException e){             log.error(e.getMessage());             return Result.error(添加任务失败);         } catch (ParseException e){             log.error(e.getMessage());             return Result.error(时间转换出错);         } catch (Exception e){             log.error(e.getMessage());             return Result.error(e.getMessage());         }         return Result.success(添加任务成功);     }       Override     public int isJobExist(JobKey jobKey) {        int flag -1;        try{            JobDetail jobDetail scheduler.getJobDetail(jobKey);            List? extends  Trigger triggers scheduler.getTriggersOfJob(jobKey);            if(jobDetail ! null triggers.size() 0){                flag 1;            } else if(jobDetail ! null triggers.size() 0){                 flag 0;            }        } catch (Exception e){            flag -1;            log.error(e.getMessage());        }        return flag;     } } entity层 Data public class JobInfo implements Serializable {     private String id;     private String jobname;     private String jobgroup;     private String jobclassname;     private String triggername;     private String triggergroup;     private String cronexpression;     private String description;     private String prefiretime;     private String nextfiretime;     private String state; } 定时任务 Slf4j public class DemoJob implements Job {     Override     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {         JobDetail jobDetail jobExecutionContext.getJobDetail();         log.info(任务名 jobDetail.getKey().getName() ,组名                 jobDetail.getKey().getGroup() ------执行的定时任务工作内容);     } } 4.创建数据库表quartz保存定时任务信息表 5.运行项目打开postman发起请求 6.运行结果
http://www.dnsts.com.cn/news/253908.html

相关文章:

  • 深圳建网站好的公司中国采购网官方网站
  • 一级a做爰片免费网站给我看看wordpress+优化速度
  • 宁波电商网站建设开发基于wordpress开发教程
  • 小程序搭建工具做网站优化价格
  • 工商所什么网站可做年报做任务的奖金网站
  • 深圳网站建设创造者手机如何做api网站
  • 长春网站建设推荐网诚传媒wordpress安装后慢的不行
  • 微信公众平台网站开发wordpress menu 插件
  • 手机自己制作表白网站浪潮云网站建设
  • 做网站销售的技巧wordpress ftp配置
  • 摄图网的图片可以做网站吗域名注册和网站哪个好
  • 国企网站建设报告什么是网站排名优化
  • 做网站的公司哪家有名教育 企业 重庆网站建设
  • cod建站平台企业网站大图
  • 哈尔滨网站开发公司排行榜农家乐网站设计
  • 推广计划怎么做东莞做网站seo优化
  • 网站设计公司排名知乎网站建站系统
  • 网站集成支付宝教程网站做3年3年包括什么软件
  • 付网站建设费用会计分录wordpress 显示评论
  • 建站超市代理在线网站建设
  • 网站搭建好后被移动宽带屏蔽怎么办建德 网站
  • 网站开发参考文献2015年后厦门网站建设那家好
  • 怎样免费做公司网站百度推广销售
  • 静安西安网站建设做外贸的网站要多少钱
  • 饿了吗网站wordpresswordpress评论内网ip
  • 做自己的网站怎样设置网站关键词
  • 昌平区网站建设怎么使自己做的网站有音乐
  • 网站推广怎么弄开发网站现实网络传输失败
  • 网站建设需求有哪些建筑行业资讯网站
  • 北京旅游网站排名saas 做网站