欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java定時(shí)任務(wù)-創(chuàng)新互聯(lián)

Java定時(shí)任務(wù)
  • JDK定時(shí)器Timer使用及原理分析
    • 小頂堆
    • 時(shí)間輪算法
    • Timer
  • 定時(shí)任務(wù)線程池解析
    • Schedule
    • Leader-Follower模式
  • 定時(shí)任務(wù)框架Quartz
    • quartz demo
    • JobDataMap
    • job并發(fā)及持久化
    • 觸發(fā)器
    • 調(diào)度器
    • 整合springboot

成都創(chuàng)新互聯(lián)公司主營(yíng)嵊州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件定制開發(fā),嵊州h5微信小程序開發(fā)搭建,嵊州網(wǎng)站營(yíng)銷推廣歡迎嵊州等地區(qū)企業(yè)咨詢JDK定時(shí)器Timer使用及原理分析 小頂堆

完全二叉樹:只有最后一層節(jié)點(diǎn)數(shù)不滿
堆:是一顆完全二叉樹,元素滿足每個(gè)節(jié)點(diǎn)的值都大于或者小于其父節(jié)點(diǎn)的值
數(shù)組存儲(chǔ)結(jié)構(gòu):
小頂堆:最上面的最小
更好的找到父節(jié)點(diǎn)是誰(shuí),除以2
插入元素、刪除元素

缺點(diǎn):插入和刪除要移動(dòng)比較全部的元素,需要耗費(fèi)大量性能浪費(fèi)
適合比較偏小量的

時(shí)間輪算法

鏈表或者數(shù)組實(shí)現(xiàn)時(shí)間輪:遍歷數(shù)組,每個(gè)下標(biāo)放置一個(gè)鏈表,鏈表節(jié)點(diǎn)放置任務(wù),遍歷到了就取出執(zhí)行
round型時(shí)間輪:任務(wù)上記錄一個(gè)round,遍歷到了就將round減一,為0時(shí)取出執(zhí)行
缺點(diǎn):需要遍歷所有的任務(wù),效率較低
分層時(shí)間輪:使用多個(gè)不同時(shí)間維度的輪。天輪記錄幾點(diǎn)執(zhí)行。月輪記錄幾號(hào)執(zhí)行。月輪遍歷到了。將任務(wù)取出放到天輪里面,即可實(shí)現(xiàn)幾號(hào)幾點(diǎn)執(zhí)行。

Timer

Timer:任務(wù)啟動(dòng):new()、任務(wù)添加:.schedule()
小頂堆里面添加任務(wù)、從小頂堆里獲取最近的任務(wù)、獲取當(dāng)前時(shí)間和這個(gè)任務(wù)下一次要執(zhí)行的時(shí)間,若、要把任務(wù)刪除掉重新入隊(duì)、預(yù)設(shè)的時(shí)間,任務(wù)真正執(zhí)行時(shí)間取決于上一個(gè)任務(wù)執(zhí)行完的時(shí)間
scheduleAtFixRate():
TimerTask:寫業(yè)務(wù)邏輯、再啟動(dòng)線程池去執(zhí)行
單線程:任務(wù)阻塞、任務(wù)超時(shí)

定時(shí)任務(wù)線程池解析 Schedule

ScheduledExecutorService scheduledThreadPool = Excutors.newScheduledThreadPool()
scheduleAtFixedRate

Leader-Follower模式

避免沒必要的喚醒和阻塞操作,更有效,更節(jié)省資源

定時(shí)任務(wù)框架Quartz quartz demo

Job:業(yè)務(wù)邏輯
-JobBuilder、JobDataMap
execute()

JobDetail:Job的包裝
JobBuilder.newJob().withIdentity().build()

Trigger:觸發(fā)器
-TriggerBuilder 、JobDataMap、ScheduleBuilder simple、
.startNow()
.withSchedule()

Scheduler:按照觸發(fā)器定義的時(shí)間去執(zhí)行Job
-SchedulerFactory:StdSchedulerFactory properties配置
.shcheduleJob(jobDetail,triggerr)

JobDataMap

存儲(chǔ)一些變量

job并發(fā)及持久化

Scheduler每次執(zhí)行,都會(huì)根據(jù)JobDetail創(chuàng)建一個(gè)新的Job實(shí)例,這樣就可以規(guī)避并發(fā)訪問的問題

@DisallowConcurrentExecution:禁止并發(fā)地執(zhí)行同一個(gè)job定義的多個(gè)實(shí)例
前一個(gè)任務(wù)執(zhí)行完了,才會(huì)執(zhí)行下一個(gè)任務(wù)

@PersistJobDataAfterExecution: 將JobDataMap進(jìn)行持久化

觸發(fā)器

優(yōu)先級(jí):同時(shí)觸發(fā)的比較優(yōu)先級(jí)
錯(cuò)過(guò)觸發(fā):到達(dá)觸發(fā)時(shí)間時(shí)沒有被執(zhí)行、可以配置延遲的閾值
simple:
cron:

調(diào)度器

JobStore
默認(rèn)存儲(chǔ)在內(nèi)存中

整合springboot

集群處理。每個(gè)節(jié)點(diǎn)執(zhí)行一些任務(wù)
節(jié)點(diǎn)間互相不通信,通過(guò)數(shù)據(jù)庫(kù)來(lái)
quartz.properties
QRTZ

配置文件、建表語(yǔ)句

QuartzJobBean
executeInternal(JobExecutionContext context)

SchedulerConfig
Scheduler按照配置文件創(chuàng)建調(diào)度器

@Bean
Scheduler scheduler()

@Bean
SchedulerFactoryBean
factory.setSchedulerName(“”)
factory.setDataSource()
factory.setApplicationContextSchedulerContextKey(“applicaiton”)
factory.setQuartzProperties(quartzProperties())
factory.setTaskExecutor(schedulerThreadPool())
factory.setStarter

@Bean
DataSource

@Bean
Executor schedulerThreadPool{
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor
executor.setCorePoolSize
executor.setMaxPoolSize
executor.setQueue

@Bean
Properties quartzProperties()
PropertiesFactoryBean propertiesFactoryBean
propertiesFactoryBean.setLocation(new ClassPathResource(“quartz.properties”))
propertiesFactoryBean.afterpeopertiesSet()
return propertiesFactoryBean.getObject

通過(guò)監(jiān)聽器啟動(dòng)調(diào)度
StarterApplocationListener implements ApplicationListener()

@Autowired
Scheduler

IOC容器啟動(dòng)起來(lái)以后啟動(dòng)調(diào)度
onApplicationEvent(ContextRefreshedEvent event){
TriggerKey triggerKey=TriggerKey.triggerKey()
scheduler.getTrigger(triggerKey);
if(trigger == null) {
trigger=TriggerBuilder.newTrigger()
.withIdentity(triggerKey)
.withSchedule(CronScheduleBuiler.cronSchedule(“0/10 * * * * ?”))
.build();

JobDetail jobDetail = JobBuilder.newJob(QuartzJob.class)
.withIdentity()
.build()

scheduler.scheduleJob(jobDetail,trigger);
sheduler.start();
}

@SpringBootApplication

數(shù)據(jù)庫(kù)里存儲(chǔ)了一些歷史數(shù)據(jù)

一個(gè)JobDetail在一個(gè)節(jié)點(diǎn)

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

分享標(biāo)題:Java定時(shí)任務(wù)-創(chuàng)新互聯(lián)
本文來(lái)源:http://aaarwkj.com/article38/hodpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站改版網(wǎng)站排名、企業(yè)網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管
日本中文字幕一区二区视频| 色综合色综合色综合色| 国产乡下三级_三级全黄| 亚洲精品精品一区二区| 日本一区二区最新免费| 欧美日韩在线一区二区| 国产女片xb内射在线| 天堂av免费资源在线观看 | 日韩av一区二区久久久| 精品一区二区在线欧美日韩| 麻豆资源视频在线观看| 久久热在线视频精品视频| 久久国产精品99久久久| 久久精品亚洲熟女av蜜臀| 精品欧美一区二区在线| 不卡一区二区福利日本| 五月婷婷六月丁香激情视频| 久久久国产精品免费看| 东京热一区二区电影| 日韩午夜免费一区二区蜜桃| 国产黄色av片免费| 久久中文字幕日韩精品| 亚洲日本精品一区二区三区| 亚洲欧美激情国产综合久久| 好狼色欧美激情国产区| 日本人妻内射一区二区| 日韩欧美国产精品加勒比| 亚洲乱色一区二区三区丝袜| 免费在线一区二区av| 七月丁香色婷婷婷基地| 未满十八禁止免费在线观看| 久久婷婷欧美激情综合| 永久免费观看黄色录像| 在线免费观看午夜视频| 黄片视频免费在线观看播放| 国产精品亚洲在钱视频| 成年人免费在线观看国产| 尤物欧美精品一区二区三区| 亚洲综合另类小说专区| 99精品人妻一区二区三区| 97在线观看视频免费|