spring boot @Scheduled 停止运行

问题:

spring boot 中通过注解  @Scheduled 定义了定时函数 ,但是运行一会就会停止运行

原因:

一般都是执行Scheduled任务的过程出现了线程等待或者死循环等问题,导致 Scheduled任务停止。

 如果定义了多个Scheduled任务,那么一个Scheduled任务中有线程等待或者死循环,就会导致所有的Scheduled任务停止执行。

具体造成某一个Scheduled任务停止运行的原因比较多,得具体分析Scheduled任务中都有哪些操作,一般是Scheduled任务中有http请求操作,在Scheduled任务中有HttpClient程序去请求Server,却没有设置请求超时时间,当出现网络异常等状况导致请求中断,使该http链接未正常关闭,该请求线程会一直等待,导致Scheduled定时任务停止。

解决:

1.如果程序中定义了多个Scheduled,出现了Scheduled停止,那就要一个一个的注释掉Scheduled任务,分析哪个Scheduled任务中出现问题,然后具体分析有问题的Scheduled任务。

2.如果是Scheduled任务中有http请求,建议查看是否设置了请求超时时间。

参考:

1.Scheduled任务中有FTP请求导致Scheduled任务停止

https://blog.csdn.net/justin_bob/article/details/104611868

2.http 请求超时导致Scheduled任务停止

https://www.cnblogs.com/zj0208/p/7018098.html

https://blog.csdn.net/qq_32157851/article/details/84870403

猜你喜欢

转载自blog.csdn.net/abcdu1/article/details/109730821