springboot定時(shí)任務(wù)如何獲取session?
spring boot定時(shí)任務(wù)一共有四種方法獲取session。Timer: 這是java自帶的java.util.Timer類(lèi),這個(gè)類(lèi)運(yùn)行你調(diào)度一個(gè)java.util.TimerTask任務(wù)。使用這種方式可以讓程序按照某一個(gè)頻度執(zhí)行,但不能在指定時(shí)間運(yùn)行。一般用的較少。多線程并行處理定時(shí)任務(wù),Timer運(yùn)行多個(gè)TimeTask時(shí),只要其中之一沒(méi)有捕獲拋出的異常,其它任務(wù)便會(huì)自動(dòng)終止運(yùn)行
ScheduledExecutorService: 也是jdk自帶的一個(gè)類(lèi);是基于線程池設(shè)計(jì)的定時(shí)任務(wù)類(lèi),每個(gè)調(diào)度任務(wù)都會(huì)分配到線程池中的一個(gè)線程去執(zhí)行,任務(wù)并發(fā)執(zhí)行,互不影響
Spring Task: Spring3.0以后自帶的task,可以將它看成一個(gè)輕量級(jí)的Quartz,而且使用起來(lái)比Quartz簡(jiǎn)單許多所有的定時(shí)任務(wù)都在同一線程上串行,想要異步執(zhí)行需要自己添加線程池
Quartz: 這是一個(gè)功能比較強(qiáng)大的調(diào)度器,可以讓你的程序在指定時(shí)間執(zhí)行,也可以按照某一個(gè)頻度執(zhí)行,配置起來(lái)稍顯復(fù)雜