亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有什么定時執行的好方案

有沒有什么定時執行的好方案

慕桂英3389331 2019-03-01 10:45:03
現在有這么一個需求,例如我唱歌,買了一個時段的,到點要主動給停止掉,現在我用笨的辦法,就是寫一個定時任務,一分鐘查詢次,循環查詢,看哪個時間到了,然后提醒,但是感覺這樣寫性能很不好,如果沒有到時間的也得去循環查,有沒有主動去提醒的,到時間就直接執行通知,不用一直循環去查,或者有什么別的好的方案,求分享!
查看完整描述

5 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

用延遲消息隊列, 時段開始時往延遲隊列寫入一條消息, 到點時通知應用處理。

查看完整回答
反對 回復 2019-03-01
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

加一個過期時間字段,然后讓前端執行判斷邏輯及后續操作

查看完整回答
反對 回復 2019-03-01
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

time定時少不了的,無論是訂時還是緩存過期,都需要時間對比。BS是無狀態的。
除非使用websocket來,將開始時間發到緩存,后端來定時跑,一旦時間到,就廣播用戶。

查看完整回答
反對 回復 2019-03-01
?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

我這里有個springMVC定時器的任務,不用循環,你可以設定具體時間,到你設定的時間就執行,給你看一下源碼

   //@Scheduled(cron = "0/20 * * * * ?")//每20秒跑一次
    // @Scheduled(cron = "0 0 7 * * ?")//每天早上七點運行一次
    @Scheduled(cron = "0 0 5,20,23 * * ?")//一天跑三次(防止阿里云服務器維護) 每天早上五點 下午八點 晚上十一點都跑一次
    public void run() {
        try {
            System.out.println("運行了定時任務....");
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
查看完整回答
反對 回復 2019-03-01
  • 5 回答
  • 0 關注
  • 523 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號