• 技术文章 >Java >java教程

    配置web.xml的实例教程

    零下一度零下一度2017-07-19 13:39:22原创1107
    今天项目上需要做个定时任务,临时学的,quartz的功能还是很强大用起来也方便,这里的demo只是实现每天定时执行一次,其他功能可以在此基础上继续深入学习,哈哈 睡觉,明天继续。

    一直有想法把自己学的东西记录整理分享做出来,一直没动过,今天开始第一篇,这是今天项目上需要做个定时任务,临时学的,quartz的功能还是很强大用起来也方便,这里的demo只是实现每天定时执行一次,其他功能可以在此基础上继续深入学习,哈哈 睡觉,明天继续。

    一、maven依赖:

    <dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.3</version>
      </dependency>
      <dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz-jobs</artifactId><version>2.2.3</version>
      </dependency>

    二、Doem:

    TimingTaskSchedule需要实现ServletContextListener接口,监听后启动项目时的启动类

    package com.thinkgem.jeesite.modules.sys.listener;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class TimingTaskSchedule implements ServletContextListener{// 服务器启动时执行该事件    @Overridepublic void contextInitialized(ServletContextEvent arg0) {try {
                QuartzLoad.run();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }// 服务器停止时执行该事件    @Overridepublic void contextDestroyed(ServletContextEvent arg0) {try {
                QuartzLoad.stop();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    }

    这里的 0 0 0 ? * * 表示每天00:00:00执行一次

    从左到右分别表示 秒 分 时 日 月 周 年

    ?表示不关心 *表示每 年可以忽略不写

    package com.thinkgem.jeesite.modules.sys.listener;import org.quartz.CronScheduleBuilder;import org.quartz.CronTrigger;import org.quartz.Job;import org.quartz.JobBuilder;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerFactory;import org.quartz.TriggerBuilder;import org.quartz.impl.StdSchedulerFactory;import com.thinkgem.jeesite.modules.sys.listener.job;public class QuartzLoad {private static Scheduler sched; public static void run() throws Exception { 
            System.out.println("定时任务启动");
            JobDetail jobDetail = JobBuilder.newJob((Class<? extends Job>) job.class)
                    .withIdentity("myjob", "group1").build();CronTrigger trigger =(CronTrigger) TriggerBuilder.newTrigger()
                    .withIdentity("trigger", "group1")
                    .withSchedule(CronScheduleBuilder.cronSchedule("0 0 0 ? * *"))
                    .build();
            SchedulerFactory sfact = new StdSchedulerFactory();
            Scheduler schedule = sfact.getScheduler();
            schedule.start();
            schedule.scheduleJob(jobDetail, trigger);
        }//停止  public static void stop() throws Exception{  
               sched.shutdown();  
         }  
    }

    Job中就是自己的业务处理

      job   execute(JobExecutionContext arg0) ==  SimpleDateFormat("yyyy-MM-dd HH:mm:ss""Time:"+"Hello"

    三、web.xml监听:

    com.thinkgem.jeesite.modules.sys.listener.TimingTaskSchedule

    <listener>
    <listener-class>com.thinkgem.jeesite.modules.sys.listener.TimingTaskSchedule
    </listener-class>
    </listener>

    php入门到就业线上直播课:查看学习

    以上就是配置web.xml的实例教程的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:web.xml quartz 执行任务
    上一篇:Java入门你需要会什么? 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• Java数据结构之单链表与OJ题• 详细介绍Java正则表达式之单字符匹配和预定义字符• Java总结分享之反射、枚举、Lambda表达式• 实例详解Java顺序表和链表• 一文搞懂Java线程池实现原理
    1/1

    PHP中文网