MiDaS性能对比:不同后端推理引擎速度评测
2026/1/12 17:20:19
@SpringBootApplication@EnableSchedulingpublicclassApplication{publicstaticvoidmain(String[]args){SpringApplication.run(Application.class,args);}}@ComponentpublicclassOrderTask{// 每 5 秒执行一次@Scheduled(fixedRate=5000)publicvoidcheckOrderStatus(){System.out.println("检查订单状态...");}}// 固定间隔(上一次开始 → 下一次开始)@Scheduled(fixedRate=5000)// 固定延迟(上一次结束 → 下一次开始)@Scheduled(fixedDelay=5000)// Cron 表达式(最灵活)@Scheduled(cron="0 0 2 * * ?")// 每天凌晨 2 点秒 分 时 日 月 周002**?*任意
?不指定
0/5每 5 秒
MON-FRI周一到周五
📌适合场景:
库存检查、数据同步、日志清理、缓存预热
默认的
@Scheduled是单线程的,任务一堵,后面的都排队 🐌。
@Configuration@EnableSchedulingpublicclassScheduleConfig{@BeanpublicTaskSchedulertaskScheduler(){ThreadPoolTaskSchedulerscheduler=newThreadPoolTaskScheduler();scheduler.setPoolSize(5);scheduler.setThreadNamePrefix("schedule-");scheduler.initialize();returnscheduler;}}多任务并行执行
不怕某个任务“赖着不走”
在集群环境中,一个定时任务可能被多个节点同时执行,很危险 ⚠️。
@Scheduled(cron="0 */5 * * * ?")publicvoidtask(){if(redisLock.tryLock("order_task")){try{// 业务逻辑}finally{redisLock.unlock("order_task");}}}@Scheduled(cron="0 0 1 * * ?")@SchedulerLock(name="cleanTask",lockAtMostFor="10m")publicvoidcleanData(){// 只会有一个实例执行}