• SpringBoot整合定时任务task


    @SpringBootApplication
    //扫描 mybatis mapper 包路径
    @MapperScan(basePackages = "com.imooc.mapper")
    //扫描 所有需要的包, 包含一些自用的工具类包 所在的路径
    @ComponentScan(basePackages= {"com.imooc", "org.n3r.idworker"})
    //开启定时任务
    @EnableScheduling
    public class ImoocApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(ImoocApplication.class, args);
    	}
    }
    

      

    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;
    
    @Component
    public class TestTask {
    
    	private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
    
    	// 定义每过3秒执行任务
        @Scheduled(fixedRate = 3000)
        public void reportCurrentTime() {
            System.out.println("现在时间:" + dateFormat.format(new Date()));
        }
    }
    

     cron表达式定时任务;  ps: springboot不支持年

    @Scheduled(cron = "4-40 * * * * ?")

    @SpringBootApplication
    //扫描 mybatis mapper 包路径
    @MapperScan(basePackages = "com.imooc.mapper")
    //扫描 所有需要的包, 包含一些自用的工具类包 所在的路径
    @ComponentScan(basePackages= {"com.imooc", "org.n3r.idworker"})
    //开启定时任务
    @EnableScheduling
    //开启异步调用方法
    @EnableAsync
    public class ImoocApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(ImoocApplication.class, args);
    	}
    }
    

      

    import java.util.concurrent.Future;
    
    import org.springframework.scheduling.annotation.Async;
    import org.springframework.scheduling.annotation.AsyncResult;
    import org.springframework.stereotype.Component;
    
    @Component
    public class AsyncTask {
    	
    	@Async
        public Future<Boolean> doTask11() throws Exception {
            long start = System.currentTimeMillis();
            Thread.sleep(1000);
            long end = System.currentTimeMillis();
            System.out.println("任务1耗时:" + (end - start) + "毫秒");
            return new AsyncResult<>(true);
        }
        
    	@Async
        public Future<Boolean> doTask22() throws Exception {
            long start = System.currentTimeMillis();
            Thread.sleep(700);
            long end = System.currentTimeMillis();
            System.out.println("任务2耗时:" + (end - start) + "毫秒");
            return new AsyncResult<>(true);
        }
        
    	@Async
        public Future<Boolean> doTask33() throws Exception {
            long start = System.currentTimeMillis();
            Thread.sleep(600);
            long end = System.currentTimeMillis();
            System.out.println("任务3耗时:" + (end - start) + "毫秒");
            return new AsyncResult<>(true); 
        }
    }
    

      

    import java.util.concurrent.Future;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping("tasks")
    public class DoTask {
    	
    	@Autowired
        private AsyncTask asyncTask;
    	
        @RequestMapping("test1")
        public String test1() throws Exception {
        	
        	long start = System.currentTimeMillis();
        	
        	Future<Boolean> a = asyncTask.doTask11();
        	Future<Boolean> b = asyncTask.doTask22();
        	Future<Boolean> c = asyncTask.doTask33();
        	
        	while (!a.isDone() || !b.isDone() || !c.isDone()) {
        		if (a.isDone() && b.isDone() && c.isDone()) {
        			break;
        		}
        	}
        	
        	long end = System.currentTimeMillis();
        	
        	String times = "任务全部完成,总耗时:" + (end - start) + "毫秒";
        	System.out.println(times);
        	
        	return times;
        }
    }
    

      

     线程池,activeMQ

  • 相关阅读:
    [loss]Triphard loss优雅的写法
    [Pytorch]Pytorch中tensor常用语法
    [pytorch]pytorch loss function 总结
    [Pytorch]Pytorch的tensor变量类型转换
    [Pytorch]Pytorch中图像的基本操作(TenCrop)
    caffe深度学习网络(.prototxt)在线可视化工具:Netscope Editor
    samba网络共享
    openwrt开发笔记三:uci移植及API调用
    openwrt开发笔记二:树莓派刷openwrt
    git跟踪忽略规则文件.gitignore
  • 原文地址:https://www.cnblogs.com/pejsidney/p/8661590.html
Copyright © 2020-2023  润新知