專案中遇到這樣乙個問題,乙個介面涉及到複雜運算(日環比,周同比,資料量大),前端查詢相關報表統計資訊時候,耗時兩秒左右;現在考慮用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...