<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                #### 基于注解 基于注解@Scheduled默認為單線程,開啟多個任務時,任務的執行時機會受上一個任務執行時間的影響。 使用SpringBoot基于注解來創建定時任務非常簡單,只需幾行代碼便可完成。?代碼如下: ``` @Component @Configuration //1.主要用于標記配置類,兼備Component的效果。 @EnableScheduling // 2.開啟定時任務 public class SaticScheduleTask { //3.添加定時任務 @Scheduled(cron = "0/5 * * * * ?") //或直接指定時間間隔,例如:5秒 //@Scheduled(fixedRate=5000) private void configureTasks() { System.err.println("執行靜態定時任務時間: " + LocalDateTime.now()); } } ``` #### 1、@Scheduled(fixedDelay = 5000) 將以一個固定延遲時間5秒鐘調用一次執行,這個周期是以上一個調用任務的完成時間為基準,在上一個任務完成之后,5s后再次執行。 #### 2、@Scheduled(fixedRate = 5000) 將以一個固定速率5s來調用一次執行,這個周期是以上一個任務開始時間為基準,從上一任務開始執行后5s再次調用。 #### 3、cron表達式 @Scheduled(cron = "0 */60 * * * ?")//每1小時(60分鐘)執行一次 ``` "0?0?10,14,16?*?*??"?每天上午10點,下午2點,4點 "0?0/30 9-17?*?*??"??朝九晚五工作時間內每半小時 "0?0?12???*?WED" 表示每個星期三中午12點 "0?0?12?*?*??"?每天中午12點觸發 "0?15?10???*?*"?每天上午10:15觸發 "0?15?10?*?*??"?每天上午10:15觸發 "0?15?10?*?*???*"?每天上午10:15觸發 "0?15?10?*?*???2005" 2005年的每天上午10:15觸發 "0?*?14?*?*??"?在每天下午2點到下午2:59期間的每1分鐘觸發 "0?0/5?14?*?*??"?在每天下午2點到下午2:55期間的每5分鐘觸發 "0?0/5?14,18?*?*??"?在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發? "0?0-5?14?*?*??"?在每天下午2點到下午2:05期間的每1分鐘觸發 "0?10,44?14???3?WED"?每年三月的星期三的下午2:10和2:44觸發 "0?15?10???*?MON-FRI"?周一至周五的上午10:15觸發 "0?15?10?15?*??"?每月15日上午10:15觸發 "0?15?10?L?*??"?每月最后一日的上午10:15觸發 "0?15?10???*?6L"?每月的最后一個星期五上午10:15觸發 "0?15?10???*?6L?2002-2005"?2002年至2005年的每月的最后一個星期五上午10:15觸發 "0?15?10???*?6#3" 每月的第三個星期五上午10:15觸發 ``` #### 多個定時任務沖突、不執行,增加定時任務線程數 ``` spring的定時任務默認是單線程,多個任務執行起來時間會有問題:B任務會因為A任務執行起來需要20S而被延后20S執行,需要增加定時任務配置,配置定時任務連接池大小。 SpringBoot解決方案: import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.SchedulingConfigurer; import org.springframework.scheduling.config.ScheduledTaskRegistrar; import java.util.concurrent.Executors; @Configuration public class ScheduleConfig implements SchedulingConfigurer{ @Override public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { //參數傳入一個size為10的線程池 scheduledTaskRegistrar.setScheduler(Executors.newScheduledThreadPool(10)); } } SSM框架解決方案: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation=" http://www.springframework.org/schema/beans classpath:/org/springframework/beans/factory/xml/spring-beans-4.1.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd"> <!-- 注解式 --> <task:annotation-driven executor="taskExecutor" proxy-target-class="true" scheduler="scheduler" /> <!-- 配置處理定時任務的線程池 --> <task:scheduler id="myScheduler" pool-size="5" /> <!-- 配置處理 異步定時任務的 線程池 --> <beans:bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <!-- 核心線程數 --> <beans:property name="corePoolSize" value="5" /> <!-- 最大線程數 --> <beans:property name="maxPoolSize" value="10" /> <!-- 隊列最大長度 --> <beans:property name="queueCapacity" value="25" /> <!-- 線程池維護線程所允許的空閑時間,默認為60s --> <beans:property name="keepAliveSeconds" value="300" /> <!-- 線程池對拒絕任務(無線程可用)的處理策略 ThreadPoolExecutor.CallerRunsPolicy策略 ,調用者的線程會執行該任務,如果執行器已關閉,則丟棄. --> <beans:property name="rejectedExecutionHandler"> <beans:bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" /> </beans:property> </beans:bean> </beans> ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看