Home  >  Article  >  Java  >  Example tutorial for configuring web.xml

Example tutorial for configuring web.xml

零下一度
零下一度Original
2017-07-19 13:39:221639browse

Today on the project, you need to do a timing task. If you learn temporarily, the function of Quartz is still very convenient to use. The DEMO here is only implemented once a day. Other functions can continue to study on this basis. Haha sleeps on this. Haha sleeps. , continue tomorrow.

I have always had the idea to record, organize and share what I have learned. I have never done it. Today I will start the first article. This is a scheduled task that needs to be done on today’s project. I learned it temporarily. The function of quartz is still It is very powerful and easy to use. The demo here only implements scheduled execution once a day. Other functions can be further studied on this basis. Haha, sleep and continue tomorrow.

1. Maven dependency:

<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>

2. Doem:

TimingTaskSchedule needs to implement the ServletContextListener interface to start the project after listening Class

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();
        }
    }

}

The 0 0 0 ? * * means execution once every day at 00:00:00

represents seconds from left to right Time-sharing day-month anniversary

? Indicates that you don’t care* means you can ignore it and don’t write it every year

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 is your own business processing

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

三, web.xml listening:

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

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

The above is the detailed content of Example tutorial for configuring web.xml. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn