中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot中schedule如何解決定時任務不執行的問題

發布時間:2021-07-08 14:01:28 來源:億速云 閱讀:387 作者:小新 欄目:編程語言

小編給大家分享一下springboot中schedule如何解決定時任務不執行的問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

@schedule 注解 是springboot 常用的定時任務注解,使用起來簡單方便,但是如果定時任務非常多,或者有的任務很耗時,會影響到其他定時任務的執行,因為schedule 默認是單線程的,一個任務在執行時,其他任務是不能執行的.解決辦法是重新配置schedule,改為多線程執行.只需要增加下面的配置類就可以了.

import org.springframework.boot.autoconfigure.batch.BatchProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import java.lang.reflect.Method;
import java.util.concurrent.Executors;
@Configuration
public class ScheduleConfig implements SchedulingConfigurer {
  @Override
  public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
    Method[] methods = BatchProperties.Job.class.getMethods();
    int defaultPoolSize = 3;
    int corePoolSize = 0;
    if (methods != null && methods.length > 0) {
      for (Method method : methods) {
        Scheduled annotation = method.getAnnotation(Scheduled.class);
        if (annotation != null) {
          corePoolSize++;
        }
      }
      if (defaultPoolSize > corePoolSize)
        corePoolSize = defaultPoolSize;
    }
    taskRegistrar.setScheduler(Executors.newScheduledThreadPool(corePoolSize));
  }
}

看完了這篇文章,相信你對“springboot中schedule如何解決定時任務不執行的問題”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

河北省| 奉贤区| 那坡县| 微博| 长宁区| 灌阳县| 华容县| 海南省| 社旗县| 平阴县| 涞水县| 唐山市| 台东县| 南郑县| 楚雄市| 宁德市| 靖边县| 克东县| 镇沅| 梁平县| 柘荣县| 湘乡市| 怀宁县| 长宁区| 南阳市| 四会市| 江孜县| 静宁县| 金沙县| 堆龙德庆县| 琼结县| 北流市| 肇庆市| 牡丹江市| 鸡西市| 武乡县| 涿鹿县| 育儿| 彭山县| 乳山市| 呼图壁县|