91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot知識體系實戰-定時器篇

發布時間:2020-07-31 23:31:40 來源:網絡 閱讀:2519 作者:steadyjack 欄目:開發技術

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

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

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

正文:當得到上面的實現思路時,其實已經幾乎實現了一大半,接下來就是代碼實現了
①、首先創建數據庫db_springboot,創建兩張數據字段一樣的表,分別為業務級別的數據表A:order_record,報表級別的數據表B:order_report。并用mybatis逆向工程生成entity,mapper,mapper.xml文件(在這里就不貼出來了!),下面貼出A,B表的創建語句:
SpringBoot知識體系實戰-定時器篇

SpringBoot知識體系實戰-定時器篇

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

SpringBoot知識體系實戰-定時器篇

SpringBoot知識體系實戰-定時器篇

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

SpringBoot知識體系實戰-定時器篇

SpringBoot知識體系實戰-定時器篇

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

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

SpringBoot知識體系實戰-定時器篇

SpringBoot知識體系實戰-定時器篇

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

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

SpringBoot知識體系實戰-定時器篇

SpringBoot知識體系實戰-定時器篇

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德阳市| 平远县| 黄石市| 和林格尔县| 天祝| 黔西| 修水县| 都匀市| 宁夏| 石景山区| 莆田市| 石嘴山市| 延津县| 宜兰县| 安岳县| 塔河县| 新兴县| 乌鲁木齐县| 夏津县| 禄劝| 沁水县| 大新县| 南江县| 申扎县| 视频| 保定市| 东丰县| 洮南市| 内乡县| 中牟县| 公主岭市| 阿鲁科尔沁旗| 新安县| 崇义县| 土默特右旗| 临城县| 山丹县| 景德镇市| 元氏县| 贞丰县| 行唐县|