zoukankan      html  css  js  c++  java
  • scheduletask任务调度

    1.导入jar包

    2.创建entity、

    package cn.happy.entity;
    
    public class Plan {
        //时间
        private String date;
        //任务
        private String task;
        
        public Plan() {
    
        }
    
        public Plan(String date, String task) {
            this.date = date;
            this.task = task;
        }
      
        @Override
        public String toString() {
            return "Plan [date=" + date + ", task=" + task + "]";
        }
    
        public String getDate() {
            return date;
        }
    
        public void setDate(String date) {
            this.date = date;
        }
    
        public String getTask() {
            return task;
        }
    
        public void setTask(String task) {
            this.task = task;
        }
    }

    3、创建service

    package cn.happy.service;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import cn.happy.entity.Plan;
    
    public class RemindService {
        
        
        public void print(String name){
            List<Plan> list = getPlan(name);
            System.out.println(name+"的提醒信息
    ");
            for (Plan plan : list) {
                System.out.println(plan);
            }
        }
         public void printPlan(String userName){
               List<Plan> plansForToday = getPlansForToday(userName);
                System.out.print(userName + "的提醒信息:
    ");
                for(Plan plan:plansForToday){
                    System.out.print(plan +"
    ");
                }
           }
           
           public List<Plan> getPlansForToday(String userName){
                //模拟数据库查询,仅为说明问题
                List<Plan> list = new ArrayList<Plan>();
                list.add(new Plan("2003-8-9 9:00","研讨会 | 地点:会议室C01"));
                list.add(new Plan("2003-8-9 14:00","汇报 | 地点:总裁办公室"));
                return list;
            }
           
           public List<Plan> getPlan(String name){
               List<Plan> list = new ArrayList<Plan>();
               list.add(new Plan("2016年12月18日10:59", "研讨会"));
               list.add(new Plan("2016-12-18 11:01","汇报"));
               return list;
           }
    }

    4、创建quartz

    package cn.happy.quartz;
    
    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    
    import cn.happy.service.RemindService;
    /**
     * 工作调度类  quartz 类 需要实现 job接口
     * @author SLEEP
     *
     */
    public class RemindJob implements Job {
    	//注入service对象
    	RemindService service =new RemindService();
    	@Override
    	public void execute(JobExecutionContext arg0) throws JobExecutionException {
    		service.printPlan("见见");
    	}
    	
    	
    	
    
    }
    

    5.创建测试类(关键)

    package cn.happy.test;
    
    import java.util.Date;
    
    import org.quartz.JobBuilder;
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerException;
    import org.quartz.SchedulerFactory;
    import org.quartz.SimpleScheduleBuilder;
    import org.quartz.Trigger;
    import org.quartz.TriggerBuilder;
    import org.quartz.impl.StdSchedulerFactory;
    
    import cn.happy.quartz.RemindJob;
    /**
     * 测试类
     * 使用quartz类
     * @author SLEEP
     *
     */
    public class Test {
        
        public void doRemind() throws SchedulerException, InterruptedException {
        
            
            //创建一个任务    
            JobDetail  job= JobBuilder.newJob(RemindJob.class)  //
                             .withIdentity("job1", "group1")
                             .build();    
            //创建一个触发器
             Trigger trigger = TriggerBuilder.newTrigger() 
                     .withIdentity("myTrigger", "myTriggerGroup")
                     .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                         .withIntervalInSeconds(5)
                         .repeatForever())
                     .startAt(new Date(System.currentTimeMillis() + 1000))
                     .build();
             //创建调度工厂
             SchedulerFactory stdSchedulerFactory = new StdSchedulerFactory();
             //创建一个调度者
             Scheduler scheduler = stdSchedulerFactory.getScheduler();
             //注册并进行调度
             scheduler.scheduleJob(job,trigger);
             //启动调度
             scheduler.start();
            //创建调度者工厂
            SchedulerFactory sfc = new StdSchedulerFactory();
            //创建一个调度者
            Scheduler sched = sfc.getScheduler();
            //注册并进行调度
            sched.scheduleJob(job, trigger);
            //启动调度
            sched.start();
            /*//sleep10s
            Thread.sleep(10000);
            //关闭调度
            sched.shutdown();*/
        }
        
        /**
         * 
         */
        public static void main(String[] args) {
            try{
                Test testJob = new Test();
                testJob.doRemind();
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    【Go语言系列】2.3、Go语言基本程序结构:变量及常量
    【Go语言系列】2.2、Go语言基本程序结构:关键字与标识符
    【Go语言系列】2.1、Go语言基本程序结构:注释
    【Go语言系列】第三方框架和库——GIN:快速入门
    【Go语言系列】第三方框架和库——GIN:GIN介绍
    【Go语言系列】1.4、GO语言简介:第一个Go语言程序
    【Go语言系列】1.3、GO语言简介:Go语言开发的知名项目
    【Go语言系列】1.2、GO语言简介:哪些大公司正在使用Go语言
    【Go语言系列】1.1、GO语言简介:什么是GO语言
    CentOS自行编译升级Git
  • 原文地址:https://www.cnblogs.com/myhome-1/p/6194545.html
Copyright © 2011-2022 走看看