quartz---我爲什麼要使用quartz



quartz---我爲什麼要使用quartz


 

         quartz是什麼?怎麼使用?本文不做介紹,有興趣的朋友可以看筆者之前的博客以及自己查閱相關資料。本文筆者主要想介紹一下我爲什麼使用Quartz以及在“jrkj”這個項目中運用的場景。

 

         應用場景一

 

         更新靜態數據

 

         接着上一篇Redis的應用可知,我需要將首頁所展示的數據存入redis中並且每隔一小時更新一次數據。

 

         不知道您如果遇到這種問題如何解決,筆者在遇到這個問題時,首先想到的是多線程。當項目啓動時我多起一個線程專門負責數據的查詢並更新存入redis中,然後在寫一個定時地每小時執行一次改更新方法。而當時一個偶然的機會聽一個朋友說他們公司用了一個叫做quartz框架,簡單的瞭解了一下我果斷選擇了後者。(當時主要出於兩個原因:一、項目開發的時間比較緊,二、使用quartz拓展性比較好,維護起來比較方便,三、其他場景說明)。

 

         應用場景二

        

         自動結賬

 

         因爲涉及到支付,如果學員在上完課之後,沒有結課的話,這部分錢就永遠是講師的帶收入而不是收入。顯然這是不合理的,所以就需要一個自動結賬的過程。類似於咱們在淘寶上購物如果我們不確認收貨,也會默認一個時間段,如果超過這個時間段也會自動結賬。

        

         應用場景三

 

         自動覈算評價分數

         學員在完成一次交易之後會對具體的某一門課程進行評價,而講師的綜合評價會覈算其所授的所有的課程的所有評價並且按照一定得規則進行計算從而算出該講師的綜合評分     如果我們在每次查詢講師詳情的時候再去計算這些分數的話,在數據少的時候也許沒什麼問題,當我們的數據量特別大的時候效率肯定是個大問題,如果我們每天凌晨3-4點的時候去核算呢?

         所以這塊我在數據庫中增加了一個表用戶存放講師的綜合評價,並在每天凌晨四點更新,如果我需要查詢講師的詳細信息,我可以直接查詢新建的表。

 

         結束語

        

         相信讀者看了這篇博客和筆者的上一篇博客會發現頻繁的出現一個詞場景,我想,代碼的任意一行都是有其存在的意義的。我們在敲代碼的時候不妨問問自己,我寫這段代碼的應用場景是什麼?我爲什麼要這樣做,而不用另外一種方法?這樣做解決了什麼問題?如果每一個功能,每一個方法我們都能這樣問問自己,我想這一方面能夠提交我們得開發效率,另一方面也能培養了我們的業務思維(相信很多人都聽過,業務思維的重要性),技術只有依託於業務才能發揮它的功效。

發佈了129 篇原創文章 · 獲贊 16 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章