package task.demo.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import task.demo.service.AsyncService; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @RestController public class AsyncController { @Autowired AsyncService asyncService; @RequestMapping("/hello") public Object hello() { //@EnableAsync //注解方式开启异步支持 String date1 = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); System.out.println(date1); asyncService.hello(); String date2 = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); System.out.println(date2); return "success"; } /** * 定时任务 * @return */ @RequestMapping("/scheduledHello") public Object scheduledHello() { //@EnableScheduling //注解方式开启定时任务支持 asyncService.scheduledHello(); return "scheduledHello"; } }
package task.demo.service; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @Service public class AsyncService { /** * 异步任务 */ @Async public void hello() { try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("开始执行"); } /** * 定时任务 每两秒执行一次 * cron表达式在线生成 http://cron.qqe2.com/ * 秒 分 时 日 月 周 */ @Scheduled(cron = "0/2 * * * * *") public void scheduledHello() { String date1 = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); System.out.println("定时任务执行了 " + date1); } }