SpringBoot中怎么利用數(shù)據(jù)庫實(shí)現(xiàn)一個(gè)定時(shí)任務(wù),很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、靈臺網(wǎng)站維護(hù)、網(wǎng)站推廣。
基于注解來創(chuàng)建定時(shí)任務(wù)非常簡單,只需幾行代碼便可完成。實(shí)現(xiàn)如下:
@Configuration@EnableSchedulingpublic class SimpleScheduleTask { //10秒鐘執(zhí)行一次 @Scheduled(cron = "0/10 * * * * ?") private void tasks() { System.out.println("【定時(shí)任務(wù)】 每10秒執(zhí)行一次!"); }}
Cron表達(dá)式參數(shù)分別表示(從左到右):秒(0~59) 如0/5表示每5秒分(0~59)時(shí)(0~23)日(0~31) 月的某一天月(0~11)周幾( 可填1-7 或 SUN/MON/TUE/WED/THU/FRI/SAT)
就上面幾行代碼,就能搞定一個(gè)定時(shí)任務(wù)。顯然,使用Scheduled 確實(shí)特別的方便,但有很大的缺點(diǎn)和局限,就是當(dāng)我們調(diào)整了執(zhí)行計(jì)劃的時(shí)間時(shí),需要重啟服務(wù)才能生效,這就有些不方便。為了達(dá)到實(shí)時(shí)生效的效果,可以通過數(shù)據(jù)庫來動態(tài)實(shí)現(xiàn)定時(shí)任務(wù)。
基于數(shù)據(jù)庫的動態(tài)定時(shí)任務(wù)實(shí)現(xiàn)
將定時(shí)任務(wù)配置在數(shù)據(jù)庫,啟動項(xiàng)目的時(shí)候,用mybatis讀取數(shù)據(jù)庫,實(shí)例化對象,并設(shè)定定時(shí)任務(wù)。如果需要新增,減少,修改定時(shí)任務(wù),僅需要修改數(shù)據(jù)庫資料,并重啟項(xiàng)目即可,無需改代碼。
@Lazy(value = false)@Componentpublic class ScheduleTask implements SchedulingConfigurer { protected static Logger logger = LoggerFactory.getLogger(ScheduleTask.class); private SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Autowired private ScheduleTaskMapper scheduleTaskMapper; @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { List 看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
當(dāng)前名稱:SpringBoot中怎么利用數(shù)據(jù)庫實(shí)現(xiàn)一個(gè)定時(shí)任務(wù)
標(biāo)題網(wǎng)址:http://weahome.cn/article/poccpi.html