真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringBoot知識體系實戰(zhàn)-定時器篇-創(chuàng)新互聯(lián)

實戰(zhàn)前言:定時任務(wù)我想諸位童鞋都不陌生,簡而言之名為“設(shè)定定時鬧鐘做某件事情”,在這里我將以訂單模塊作為實戰(zhàn)為例!

成都創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站設(shè)計、成都做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元花垣做網(wǎng)站,已為上家服務(wù),為花垣各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

需求分析:在企業(yè)級應(yīng)用中,經(jīng)常打交道的業(yè)務(wù)應(yīng)當(dāng)屬于訂單模塊了,下面將基于這樣的場景實戰(zhàn)定時器:將業(yè)務(wù)級別的訂單表A中發(fā)生更新的數(shù)據(jù) 每天定時 同步到報表級別的訂單表B中(為了給數(shù)據(jù)分析部門做報表)!其定時執(zhí)行的業(yè)務(wù)流程如下圖所示:
SpringBoot知識體系實戰(zhàn)-定時器篇

實現(xiàn)思路:
①、核心邏輯其實你會發(fā)現(xiàn)在于“拉取A表的數(shù)據(jù)以及更新到報表級別的訂單表B中”;
②、實現(xiàn)①流程之后,接下來其實是定時器的責(zé)任了。在這里我采用的是Spring提供的Scheduler模塊來實現(xiàn)!
③、在這里需要解釋“發(fā)生更新”的概念,假設(shè)每天拉取數(shù)據(jù)的日期定義為reportDate,那么更新的數(shù)據(jù)應(yīng)當(dāng)包括:“create_time=reportDate的數(shù)據(jù)列表”以及“update_time=reportDate的數(shù)據(jù)列表”,即“當(dāng)天新產(chǎn)生的數(shù)據(jù)以及當(dāng)天發(fā)生更新的數(shù)據(jù)”統(tǒng)稱為“發(fā)生更新的數(shù)據(jù)”,即增量拉??;
在實戰(zhàn)過程中,我也實現(xiàn)了全量拉取的業(yè)務(wù)邏輯。而對于報表級別的訂單表B,則是通過order_no,即訂單編號來判斷記錄是否唯一從而決定觸發(fā)B表的數(shù)據(jù)記錄是需要修改還是新增

正文:當(dāng)?shù)玫缴厦娴膶崿F(xiàn)思路時,其實已經(jīng)幾乎實現(xiàn)了一大半,接下來就是代碼實現(xiàn)了
①、首先創(chuàng)建數(shù)據(jù)庫db_springboot,創(chuàng)建兩張數(shù)據(jù)字段一樣的表,分別為業(yè)務(wù)級別的數(shù)據(jù)表A:order_record,報表級別的數(shù)據(jù)表B:order_report。并用mybatis逆向工程生成entity,mapper,mapper.xml文件(在這里就不貼出來了?。?,下面貼出A,B表的創(chuàng)建語句:
SpringBoot知識體系實戰(zhàn)-定時器篇

SpringBoot知識體系實戰(zhàn)-定時器篇

②、然后在業(yè)務(wù)級別的訂單模塊OrderRecordMapper中定義全量/增量拉取的sql邏輯:

SpringBoot知識體系實戰(zhàn)-定時器篇

SpringBoot知識體系實戰(zhàn)-定時器篇

③、在報表級別的訂單模塊OrderReportMapper中定義新增或者修改的sql邏輯,即通過訂單編號查詢的sql邏輯

SpringBoot知識體系實戰(zhàn)-定時器篇

SpringBoot知識體系實戰(zhàn)-定時器篇

④、采用Spring的Scheduler組件模塊實現(xiàn)定時邏輯,在使用之前,需要在SpringBoot啟動類開啟Scheduler,如下所示:
SpringBoot知識體系實戰(zhàn)-定時器篇

⑤、而真正的定時代碼邏輯如下:

SpringBoot知識體系實戰(zhàn)-定時器篇

SpringBoot知識體系實戰(zhàn)-定時器篇

效果:在這里,@Scheduled是核心重點,而其中的cron參數(shù)其實就是:“秒 分 時 日 月 年”的設(shè)置,在這里我是動態(tài)配置配置文件中,配置如下圖所示:
SpringBoot知識體系實戰(zhàn)-定時器篇

系統(tǒng)一啟動,將會在定時設(shè)置的cron的那個點開始觸發(fā),首先是源數(shù)據(jù)表,接著是從源數(shù)據(jù)表中“拉取今天新增的以及新增更新的數(shù)據(jù)列表” 并新增或者更新到 目標報表表B中,數(shù)據(jù)表中的數(shù)據(jù)以及觸發(fā)的效果如下圖所示:
SpringBoot知識體系實戰(zhàn)-定時器篇

SpringBoot知識體系實戰(zhàn)-定時器篇

SpringBoot知識體系實戰(zhàn)-定時器篇

結(jié)語:以上涉及到的源碼以及數(shù)據(jù)庫下載地址:http://down.51cto.com/data/2449867 實戰(zhàn)過程如有相關(guān)問題,請多多指教!若文章能幫助到你,請點贊轉(zhuǎn)發(fā)分享唄,順便關(guān)注關(guān)注我的微信公眾號或者加我個人qq:1974544863 或者 qq群:583522159(java開源技術(shù)交流)進行技術(shù)交流
SpringBoot知識體系實戰(zhàn)-定時器篇

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當(dāng)前名稱:SpringBoot知識體系實戰(zhàn)-定時器篇-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/hcjoo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部