Spring多定时任务@Scheduled执行阻塞问题解决
定时推送,这种定时任务默认是单线程执行的,而程序中有三个定时任务,可能会发生线程抢占的现象,所以要将定时任务设置成多线程的方式。有个坑,从日志上看@Async方式针对同一任务也是异步的,也即task1每5s会执行一次,但是方式二貌似对同一个任务不会生效,task1执行的时候需等待上一次执行结束才会触发,并没有每5s执行一次。由于任务1阻塞了10s,导致本应5s执行一次的定时任务10s才执行一次。设置两个定时任务,每5s执行一次,并打印出其执行情况。
原创
2023-11-01 16:11:21 ·
544 阅读 ·
0 评论