Springboot与任务

Source

Springboot与任务

springboot-异步任务

要求,任务必须是2个以上,不然会造成单个方法阻塞,使用案例如下:

//1.首先给主配置类上标@EnableAsync

@RestController
public class HelloController {
    @Autowired
    HelloService helloService;
    @GetMapping("/hello")
    public String hello() throws InterruptedException {
      //线程1执行
        helloService.hello();
      //线程2执行
        return "喝了lo";
    }
}

@Service
public class HelloService {
  //标注在方法上表示这个是一个异步方法
    @Async
    public void hello(){
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("正在处理中。。。。。");
    }
}

springboot-定时任务

关键注解:

@EnableScheduling 用来标注主配置类

@Scheduled 用来标注方法

[秒 ,分 ,时, 日, 月 , 星期]

[0 * * * * MON-FRI] 表示周一到周5的 所有整秒都执行方法,*代表周1-到周5任意时刻的每一分钟的0s都执行方法

@Scheduled(cron = "* * * * * MON-FRI")
public void say(){
  System.out.println("hello world.....sheduled!~");
}

cron表达式除了精确值或者*之外,还可以写以下的类型:

字段 允许值 允许的特殊字符
0-59 ,- * /
0-59 ,- * /
小时 0-23 ,- * /
日期 1-31 ,- * ?L W C
月份 1-12 ,- * /
星期 0-7或者SUN-SAT,0、7是SUN ,- * / L C #

其中,代表枚举类型

其中-代表区间

其中*代表任意

其中/代表步长

其中代表日/星期冲突配置

其中L代表最后

其中W代表工作日

其中C代表和calendar联系后计算的值

其中#代表星期,4#2,第2个星期四

发布了48 篇原创文章 · 获赞 3 · 访问量 1312