springboot 在程式入口初始化資源事例

2021-09-27 12:36:39 字數 1253 閱讀 7337

專案中遇到這樣乙個問題,乙個介面涉及到複雜運算(日環比,周同比,資料量大),前端查詢相關報表統計資訊時候,耗時兩秒左右;現在考慮用map快取查詢結果;一種方法是:實現介面 commandlinerunner,重寫run方法,利用scheduledexecutorservice 執行緒池定時查詢結果並儲存在sevice中的map中,介面查詢時候先走map;大致過程如下:

@component

public class mycommandlinerunner implements commandlinerunner

}

@slf4j

@data

@allargsconstructor

@noargsconstructor

public class statisticstasker implements runnable

}

/**

* spring工廠呼叫輔助類

* @author flyleft

*/ private static defaultlistablebeanfactory springfactory;

@override

springfactory = (defaultlistablebeanfactory) springcontext.getbeanfactory();

springfactory = springcontext.getdefaultlistablebeanfactory();}}

public static defaultlistablebeanfactory getspringfactory()

return context;

}}

這樣,應用啟動之後,定時任務會定時呼叫service的statistics介面,並將結果放入map當中;頁面查詢直接從map當中取資料;

二:考慮從程式入口,開啟乙個執行緒來執行初始化的邏輯:

public class springdemolication 

private static void triggeinit()

}

@slf4j

public final class initexecutor catch (exception e) }}

private initexecutor()

這樣也可以執行初始化執行緒池,執行定時任務

程式入口 專題

test 1 26 t 裸函式.exe test 行 90 kernel32.dll 775a337a 未知 ntdll.dll 77c39882 未知 ntdll.dll 77c39855 未知 預設 1 26 t 裸函式.exe wmain int argc,wchar t argv 行 99 ...

程式的入口

作業系統裝載應用程式後,做完初始化工作就轉到程式的入口點執行。程式的預設入口點由連線程式設定,不同的聯結器選擇的入口函式也不盡相同。在vc 下,聯結器對控制台程式設定的入口函式是 maincrtstartup,maincrtstartup 再呼叫main 函式 對圖形使用者介面 gui 程式設定的入...

Yii web程式入口(3)

來至 yii path base cmodule.php php 第二個引數標識如果是空則建立之,預設為true public function getcomponent id,createifnull true 下面是yii createcomponent的實現 php public static...