日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

实时排行榜的后台数据功能实现

發布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实时排行榜的后台数据功能实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

功能概要:數據定時更新,可查詢歷史數據。
詳細說明:1、現在有個排行榜需要幾分鐘更新一次,所以我使用了windows服務定時運行;一次的數據量在30萬左右,這樣可能到下次更新時本次的任務沒有運行完成,所以遇到這種情況就等待下次任務觸發時再運行更新。
? ? ? ? ? ? ? 2、當運行更新時,不斷有數據插入到榜單表,為了不影響當前顯示的榜單數據,于是在榜單表加個狀態status(0/更新中,1/顯示中)。
? ? ? ? ? ? ? 3、當更新運行完成時,更新 status=status+1,這樣更新中的數據變為顯示中,顯示中數據變為歷史(歷史一會會講到)。

? ? ? ? ? ? ?

? ? ? 這個排行榜可以按日期查詢,就是可以選擇查看昨天,前天等等。這樣就必須每天保存榜單數據,而每天會產生很多份榜單數據,我想到取當天最后一次的數據,但怎么確定最后一次的數據又是個問題,因為最后一份數據可能跨日期,那就取最后一份的上一份?也不行,一份數據是幾十萬,去按日期查詢肯定是相當慢;是不是可以每份數據存個版本號?這又要想辦法實現版本號的遞增,跨日期清零問題等等。再想想其實一天內我只需要一份完整的數據,每次更新后我可以把上份刪掉了,然后在每天另存一份即可。有了這個思路,我在榜單表中的status字段再加個狀態(2/歷史)。
? ? ? 現在,當更新運行完成時,更新 status=status+1,status會出現2個值(1/顯示中,2/歷史),那如果再運行更新呢,會出現第3個值 3(這個值看起來可以做版本號了,呵呵,因為是遞增的)。但是status=3這個數據是我們不需要的,那每次更新完干脆刪除status=3的數據好了。
? ? ? 現在我創建一個榜單歷史表,結構與榜單表一樣,但沒有狀態status字段,這個表的數據如何更新呢?因為榜單是按日查詢的,所以就每天插入一份即可,與其在服務中加邏輯,不如直接在數據庫中寫個job,定在每天23:59執行,取狀態status=2的數據即可了。

轉載于:https://www.cnblogs.com/net515/p/6548237.html

總結

以上是生活随笔為你收集整理的实时排行榜的后台数据功能实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。