Поставьте лайк и посмотрите еще раз, сформируйте привычку, я слышал, что поисковый аккаунт WeChat "Java Fish Aberdeen" выведет ваши технологии на более высокий уровень.
(1) Асинхронные задачи
Требования к асинхронным задачам часто встречаются в реальных сценариях разработки.Существует много способов добиться асинхронности в Java, например многопоточность для достижения асинхронности. В SpringBoot для реализации асинхронных задач требуется добавить только две аннотации. Добавьте аннотацию @Async к текущему классу, добавьте @EnableAsync к классу запуска
Напишите службу AsynService и дайте ей приостановиться на 3 секунды перед выводом данных.
@Service
public class AsynService {
@Async
public void async(){
try {
Thread.sleep(3000);
System.out.println("执行结束");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Напишите контроллер и вызовите этот класс обслуживания
@RestController
public class IndexController {
@Autowired
public AsynService asynService;
@RequestMapping("/index")
public String asynctask(){
asynService.async();
return "async task";
}
}
Доступ в браузере после запускаhttp://localhost:8080/index, вы обнаружите, что, поскольку асинхронность включена, браузер сначала выводит асинхронную задачу, а консоль выводит завершение выполнения через три секунды.
(2) Запланированные задачи
Я использовал временные задачи в предыдущем проекте с открытым исходным кодом seckill.В сценарии того времени база данных опрашивалась каждую минуту для запроса продуктов с истекшим сроком действия. Спектр задач, выполняемых на время, очень широк, например, автоматическая упаковка журналов в 12 часов каждый день, резервное копирование в 12 часов каждую ночь и так далее. Реализация задач по времени в SpringBoot также требует всего две аннотации: @Scheduled и @EnableScheduling. Как и прежде, @Scheduled используется для задач, которые необходимо выполнять регулярно, а @EnableScheduling — для классов запуска. Сначала напишите класс запланированной задачи:
@Service
public class ScheduleService {
@Scheduled(cron = "0/10 * * * * ? ")
public void sayHello(){
System.out.println("hello");
}
}
В аннотацию @Scheduled необходимо добавить выражение cron, чтобы определить время выполнения запланированной задачи, что означает, что она выполняется каждые 10 секунд.
Затем добавьте аннотацию @EnableScheduling в класс запуска. Запустите проект, и вы обнаружите, что приветствие будет выводиться каждые десять секунд.