Insight spring-task:executor
最近優化跑數的job,主要思路是序列拆分為並行,執行單元重構(呼叫外部介面需要非同步)。
首先,嘗試了guava 的ListeningExecutorService,對於多執行緒的操作確實非常方便。但不適用於我們這個場景,併發的粒度沒有那麼細,相對於實時響應的系統,job 不需要這樣複雜的編碼。
然後,繼續使用喜愛的spring @Async,編碼量小,體現更多的是設計,只要合理拆分執行單元,就可以輕鬆達到優化的效果。
使用過程中,針對task:executor 實現記錄如下:
1. 不指定executor,spring 提供預設的多執行緒實現SimpleAsyncTaskExecutor (為每個task 建立Thread)。
2. 如果指定executor,則根據引數最終建立ThreadPoolExecutor。
3. 引數pool-size,可以為n or n-m 表示式,只配置n,相當於core-size = max-size = n;配置n-m,相當於配置core-size = n, max-size = m。
4. 引數queueCapacity,rejection-policy 相對應,預設情況是queue滿, abort。
5. 引數keep-alive,具體初始化為ThreadPoolExecutor 的keepAliveTime,單位為s。
例項化: new ThreadPoolExecutor(this.corePoolSize, this.maxPoolSize, this.keepAliveSeconds,TimeUnit.SECONDS, queue, threadFactory, rejectedExecutionHandler);
相關文章
- Spring-Task用法Spring
- 聊聊jdk httpclient的executorJDKHTTPclient
- 執行緒池 Executor執行緒
- 【初識】-JUC·Executor框架框架
- Java併發之ExecutorJava
- 奈學:Executor框架的概述框架
- Java執行緒池(Executor)Java執行緒
- Spark設定executor-memory後,executor顯示的記憶體不符問題Spark記憶體
- Insight Windows AzureWindows
- 執行緒池和Executor框架執行緒框架
- Java Executor 框架學習總結Java框架
- Source Insight:使用Source Insight檢視C/C++原始碼C++原始碼
- source insight使用教程
- Insight spring RestTemplateSpringREST
- 給Source Insight做個外掛之一--發現Source Insight
- Java 併發程式設計 Executor 框架Java程式設計框架
- [case39]聊聊jdk httpclient的executorJDKHTTPclient
- Java併發之Executor + Callable + FutureJava
- source insight4配置
- 奈學:Executor執行緒池的概述執行緒
- Source Insight縮排設定
- Spark閉包 | driver & executor程式程式碼執行Spark
- J.U.C之Executor框架入門指引框架
- Java 執行緒 Executor 框架詳解與使用Java執行緒框架
- Runnable、Callable、Executor、Future、FutureTask關係解讀
- Source insight擴充套件宏使用套件
- Insight API開源專案分析API
- 併發07--執行緒池及Executor框架執行緒框架
- 《java併發程式設計的藝術》Executor框架Java程式設計框架
- 從淺入深掌握併發執行框架Executor框架
- Smartbi Insight 與Smartbi Eagle的區別
- Source Insight4.0破解,完美支援中文
- insight jquery ajax引數序列化jQuery
- Insight spring-session 配置(整合方式)SpringSession
- 【搞定面試官】談談你對JDK中Executor的理解?面試JDK
- Source insight 的一些命令總結
- Source Insight崩潰的解決辦法
- 使用Source Insight閱讀C++程式碼C++