Spring Task 与 WebSocket 在订单系统中的应用
在订单处理流程中,我们常遇到两类需求:一是需要后台自动执行的任务,比如定时催单或状态检查;二是需要即时通知,比如下单后商家立刻收到提醒。传统的 HTTP 轮询效率低且延迟高,而 Spring Task 和 WebSocket 正好能解决这些问题。
Spring Task 入门与配置
Spring Task 是 Spring 框架内置的轻量级调度工具,无需引入 Quartz 等第三方依赖,通过注解即可快速实现定时任务。
开启支持
在启动类或配置类上添加 @EnableScheduling 注解即可激活调度功能:
@SpringBootApplication
@EnableScheduling
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
编写任务
使用 @Scheduled 注解标记方法,支持多种调度策略:
@Component
public class ScheduledTasks {
private static final Logger logger = LoggerFactory.getLogger(ScheduledTasks.class);
/**
* 固定延迟:上次执行完成后间隔 5 秒再次执行
*/
@Scheduled(fixedDelay = 5000)
public void taskWithFixedDelay() {
logger.info("FixedDelay Task - 当前时间:{}", System.currentTimeMillis());
}
/**
* 固定频率:每 3 秒执行一次(不考虑上次是否完成)
*/
@Scheduled(fixedRate = 3000)
public void taskWithFixedRate() {
logger.info("FixedRate Task - 当前时间:{}", System.currentTimeMillis());
}
{
logger.info(, System.currentTimeMillis());
}
}


