前言
? ? ? ?在很多應(yīng)用系統(tǒng)中我們常常要定時執(zhí)行一些任務(wù)陈瘦。比如,營銷系統(tǒng)需要定時生效活動、定時發(fā)短信护赊、定時變更數(shù)據(jù)等等框仔;本文主要介紹單機和分布式兩大類的解決方案舀武,并且簡要介紹兩類方案中的常見的應(yīng)用組件或者框架,細致的場景應(yīng)用分析和底層原理解析后續(xù)撰文專門分析离斩。
概括
? ? ? ? ? ? 如圖是文章主要介紹的解決方案银舱,單機按照原理分為三類,基于線程while和sleep實現(xiàn)的跛梗、基于排序容器作為任務(wù)存儲的實現(xiàn)方案纵朋,常見就是最小堆實現(xiàn)的單線程的Timer、線程池的ScheduledThreadPoolExecutor茄袖,另外就是效率更高的時間輪的實現(xiàn)方案操软,代表有RingBufferWheel;單機的任務(wù)只能在單機執(zhí)行宪祥,而我們現(xiàn)在應(yīng)用架構(gòu)大多是分布式聂薪,分布式的定時任務(wù)框架主要是為了在分布式場景下,解決定時任務(wù)的高可用蝗羊、高并發(fā)問題應(yīng)運而生藏澳,初步類三種業(yè)界比較典型的簡單介紹
圖 定時任務(wù)的實現(xiàn)方案分類