欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解java如何處理各種批量數(shù)據(jù)入庫

 更新時間:2023年11月16日 15:58:48   作者:胡蘿卜★  
這篇文章主要為大家詳細介紹了java如何使用BlockingQueue處理各種批量數(shù)據(jù)入庫,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

這里我推薦大家使用BlockingQueue,該隊列為阻塞隊列

將數(shù)據(jù)先寫入隊列中,然后開啟多個消費線程慢慢消費入庫。從隊列中消費數(shù)據(jù)有兩種方式:

  • 單條消費
  • 批量消費

一、案例:人臉識別設備—開門記錄(批量消費)

1.創(chuàng)建隊列

@Component
public class RequestQueue<T> {
   
	/**
	* 獲取開門記錄隊列
	*/
    BlockingQueue<JSONObject> blockingQueue = new ArrayBlockingQueue<>(1000000,true);
    
     
    /**
     * 獲取請求隊列數(shù)據(jù)
     */
    public BlockingQueue<JSONObject> getBlockingQueue(){
        return blockingQueue;
    }
   
    
    
    /**
     * 保存數(shù)據(jù)進入隊列
     */
    public void putJsonDataQueue(JSONObject jsonObject){
        try {
            getBlockingQueue().put(jsonObject);

        }catch (Exception e){
            e.printStackTrace();
        }

    }
    
}

2.創(chuàng)建消費隊列任務

@Component
public class DoorOpeningRecordTask extends Thread{
    @Autowired
    private RequestQueue requestQueue;

    @Autowired
    private DoorOpeningRecordService doorOpeningRecordService;

    @Override
    public void run(){
        while(true){
            try {
                //取出信息列表
                List<JSONObject> list = new ArrayList<>();
                //參數(shù)列表: 獲取隊列  數(shù)據(jù)  批量處理一百條  500毫秒
                Queues.drain(requestQueue.getBlockingQueue(), list, 100, 500, TimeUnit.MILLISECONDS);
                //對數(shù)據(jù)進行保存
                doorOpeningRecordService.save(list);

            }catch (Exception e){
                e.printStackTrace();
            }

        }

    }


}

3.監(jiān)聽隊列信息

@Component
public class QueueListener {
    
    @Autowired
    private DoorOpeningRecordTask doorOpeningRecordTask;

    /**
     * 初始化時啟動監(jiān)聽請求隊列
     */
    @PostConstruct
    public void init() {
        doorOpeningRecordTask.start();
    }

    /**
     * 銷毀容器時停止監(jiān)聽任務
     */
    @PreDestroy
    public void destory() {
       
        doorOpeningRecordTask.interrupt();
    }

}

到此這篇關于詳解java如何處理各種批量數(shù)據(jù)入庫的文章就介紹到這了,更多相關java處理數(shù)據(jù)入庫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBatch結合SpringBoot簡單使用實現(xiàn)工資發(fā)放批處理操作方式

    SpringBatch結合SpringBoot簡單使用實現(xiàn)工資發(fā)放批處理操作方式

    這篇文章主要介紹了SpringBatch結合SpringBoot簡單使用實現(xiàn)工資發(fā)放批處理操作方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 基于java構造方法Vevtor添加元素源碼分析

    基于java構造方法Vevtor添加元素源碼分析

    這篇文章主要介紹了基于java構造方法中對Vevtor添加元素的源碼分析,有需要的朋友可以借鑒參考下,希望可以對大家有所幫助,祝大家早日升職加薪
    2021-09-09
  • SpringBoot項目打包運行jar包的實現(xiàn)示例

    SpringBoot項目打包運行jar包的實現(xiàn)示例

    本文主要介紹了SpringBoot項目打包運行jar包的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-02-02
  • 聊聊Arrays.deepToString()和Arrays.toString()的區(qū)別

    聊聊Arrays.deepToString()和Arrays.toString()的區(qū)別

    這篇文章主要介紹了聊聊Arrays.deepToString()和Arrays.toString()的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 從0開始教你開發(fā)一個springboot應用

    從0開始教你開發(fā)一個springboot應用

    這篇文章主要為大家介紹了從0開始開發(fā)一個springboot應用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Lombok中關于@Data的使用解析

    Lombok中關于@Data的使用解析

    這篇文章主要介紹了Lombok中關于@Data的使用解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中實現(xiàn)String字符串用逗號隔開

    Java中實現(xiàn)String字符串用逗號隔開

    這篇文章主要介紹了Java中實現(xiàn)String字符串用逗號隔開,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Spring Boot 靜態(tài)資源處理方式

    Spring Boot 靜態(tài)資源處理方式

    這篇文章主要介紹了Spring Boot 靜態(tài)資源處理方式,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • Java雙冒號(::)運算符使用詳解

    Java雙冒號(::)運算符使用詳解

    之前沒用過::這個東西,今天看flink的時候發(fā)現(xiàn)官網(wǎng)有個例子用到了這個符號,本文就詳細的來介紹一下Java雙冒號(::)運算符使用詳解,感興趣的可以了解一下
    2021-09-09
  • Java用戶交互scanner及運算結構代碼詳解

    Java用戶交互scanner及運算結構代碼詳解

    這篇文章主要介紹了Java用戶交互scanner及運算結構代碼詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12

最新評論