多種方式實現倒計時

2022-09-23 16:42:10 字數 890 閱讀 3102

倒計時實現的幾種方式序:先說說使用場景,這次的專案是有點偏向電商的,但是能又沒有使用蠻多電商目前火的框架。扯遠了,就說訂單的倒計時吧,因為不能長時間占用**人的資源,規定時間不付款就需要取消訂單,就跟12306買票一樣,45分鐘不付款票就可以重新**。頁面上的肯定是使用settimeout,主要就是說說後台的設計1.使用j**a自帶的timer(這個的效能肯定是不夠的,quartz都比這個強)

timer timer = new timer(); timer.schedule(new timertask() }, 0, 設定迴圈執行時間);2.使用quartz定時器思路跟timer其實差不多,也是每隔多長時間查詢一次15分鐘前的訂單,寫業務邏輯,更改訂單狀態等等3.使用delayqueue延期佇列 + redis我習慣叫死亡佇列,就是等死的佇列,呵呵。這個專案一旦重啟佇列就不存在了,所以一般還配合redis,web伺服器啟動以後,從redis中讀取待付款的訂單,插入到delayqueue,邏輯繼續,繼續等死。實現delayed介面就是實現兩個方法即compareto?和?getdelay最重要的就是getdelay方法,這個方法用來判斷是否到期,這裡在訂單超時死亡的時候寫我們直接的業務邏輯。

4.基於redis,實現redis超時失效key 的監聽觸發寫乙個監聽,繼承redis的jedispubsub。這裡需要注意:jedis的subcribe操作是阻塞的,所以我們另起了乙個執行緒來進行subcribe操作,裡面寫我們的邏輯。

1.效能消耗大,資料量大了吃不消

2.目前來說還比較靠譜,就是擔心quartz是單獨乙個專案,與業務系統在事務上可能出現管理不一致,併發大了導致資料紊亂。

3.專案不能重啟,重啟佇列就空了,還好有redis作為補償4.redis不做集群,怕redis吃不消。以上分析也是自己的拙見,可能現在電商有很多更好的方式處理。技術不能止步,加油,說給自己。

倒計時 心跳倒計時

我從悶熱的午後醒來,可還是頭痛得厲害,睡意再次湧上心頭,我告訴自己不能再昏睡下去,於是決定出門去清醒一下。現在的天氣雖說有些燥熱,但是陰涼處還是比較涼爽,我慢慢地走,接著慢跑了起來,夕陽散發著最後一縷餘暉。我邊看著眼前的城市邊際的美景邊深呼吸著,隨著耳機裡傳來的 律動著。突然有個聲音從我腦海裡響起,...

js倒計時,秒倒計時,天倒計時

html 1 html 2 距某某開幕式還有 天 html html html id timer style color red 這次利用系統時間自校驗倒計時,無需手工調校使得倒計時更為精確,及詳細注釋如下 id clock 00 01 11 00 id startb type button val...

JQuery實現倒計時

以下是要實現的效果 當條件滿足時,出彈窗,3秒後自動跳轉指定頁面 姓名 type text name name cwid type text name cwid class submit nclick submit 註冊 class tishi hide 恭喜您,身份驗證成功倒計時 id time ...