国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

發(fā)布一場考試,有結(jié)束時間 定時器該怎么處理

chern

需求是 房間有開始&結(jié)束時間 比如2018-1-8到2018-1-10 答題時間為2小時,用戶超過到達(dá)2小時自動提交 或者截止時間自動提交

如果進(jìn)程開啟打開一個定時器(20s) 輪詢查mysql roomId 通過roomId查詢reids對應(yīng)房間詳情 怎么能做到?jīng)]有時間差

用戶進(jìn)入考試開啟2小時定時任務(wù),命中條件銷毀。
房間的定時器該怎么設(shè)置,如果有一百場考試 是通過進(jìn)程的輪詢定時器去查詢是否有新創(chuàng)建的房間 針對每個房間開啟一個對應(yīng)的定時器嗎?

定時器過多會不會影響效率

800 3 0
3個回答

晚安。

用消息隊列,延時處理

夢想世界

用戶進(jìn)入試卷答題,時間為1小時,1小時后。自動提交的話,是不是需要把用戶前面已經(jīng)做好的題要提交過去,不然用戶就是0分了

  • 夢想世界 2024-04-18

    這里假如完全由后臺來判斷的話,是不是獲取不到用戶已經(jīng)做好的答案,是不是不太合理

  • chern 2024-04-18

    可以用緩存來保存用戶每次的答題記錄,這樣最后結(jié)算的時候從內(nèi)存里拿去也會快一些 ,最后再統(tǒng)一入庫

  • 夢想世界 2024-04-18

    哦,實時保存答案,用戶做一道題前端就提交過來保存嘛

  • chern 2024-04-18

    我是這么考慮的
    參與考試,查詢隊列是否有該場考試,如果沒有,計算考試倒計時push隊列,同步開始用戶倒計時push到隊列
    倒計時結(jié)束socket推送前端強(qiáng)制提交
    用戶選擇一次,提交一次問題、答案 判斷對錯然后存入redis
    考試結(jié)束,pop reids該場考試數(shù)據(jù) 逐步入庫

z985342160

前提

開始與截止時間已明確,前后端都對時間做判斷,大于截止時間不允許答題

做法

  1. 后臺定時查詢到期的考試,然后提交
  2. 前后setTimeout()或setInterval()定時提交??梢宰鲆粋€倒計時功能提示用戶還剩N秒后自動交卷,到時間后就提交。

1和2可以互補(bǔ)

  • chern 2024-04-19

    前端的時間 只是呈現(xiàn)給用戶的 并不能取做任何功能使用 可以篡改的

  • z985342160 2024-04-19

    前端是輔助效果,后端也要檢驗的

年代過于久遠(yuǎn),無法發(fā)表回答
??