定時觸發問題

2021-09-05 23:29:49 字數 1317 閱讀 8370

定時觸發問題

定時觸發問題

如果只是乙個很少量的定時觸發。可能很多人會把哪個東西加到淺程池來實現。

而我們這邊的實現是採用佇列方式。 所有還沒有觸發的東西都放在乙個佇列裡。並且按觸發時間排好。

比如說這是乙個要求比較實時的。我們就不需要0.5s檢查一下這個東西時間是不是到了。 如果是以天為單位的。哪麼我們就要任務結束後計算出第二是什麼時候。demo在mailsender,webshop裡而都有。

我們順便看一下時間問題。

這個任務必須在3天後觸發

triggertime= addtime + 3days 這樣就是乙個三天後的時間

然後程式什麼判斷呢?

兩種情況

現在時間還小於the day,嗯時間還沒到任務不需要觸發.

時間大於 theday,任務做了嗎? 沒有做。哪就要敢緊做了? 換句話說,三天後要發也就是說現在必須發三天前的東西,兩天前沒有關係。

很明顯第二個才是我們要的轉換程式思維一下

triggertime  triggertimedatetime.today.

或者是直接用日期了

triggertime.date = currenttime.today

比如說有乙個試用週期快到了,你希望提醒使用者來續費。 我們的直刻感覺就是下面的這種

(totaltrialdays - sqlmethods.datediffday(it.createtime, datetime.today)) == reminingdays

實際上也是可以轉化成上面哪種 比如還剩2天的時候要提醒 totaltrialdays-reminingdays 所以

traggerday 就是 createtime + totaltrialdays-reminingdays

creaetime.today <= datetime.today - totaltrialdays +reminingdays

totaltrialdays + creaetime.today <= datetime.today +reminingdays

totaltridays + createtime.today-today <= levldays

totaltridays - (-createtime.today+today) <= levldays 小於的話就一定會觸發

跟上面的是一樣的

需要注意的是:

比如說有這樣的乙個任務 invoice在生成14天後還沒有被支付的話我們必須發郵件告訴他。

我們必須考慮的是。如果我們的這個程式重啟了會不會造成這封郵件被多次好送。

我們必須記錄這個任務有被執行了。

onblur 無限觸發問題

當使用onblur事件時,如果呼叫alert prompt,confirm之內的能掛起js執行的 可能會導致重複觸發onblur事件。這時,可以使用onchange 事件來代替onblur 事件。方法 輸入框失去焦點並且 value 改變之後觸發。onchange 方法需要滿足兩個條件,value ...

JS事件覆蓋問題和觸發問題

昨天遇到乙個面試題,主要就是事件覆蓋問題和觸發問題 不是打廣告,無視文字內容 總之這樣的話,會輸出三次 做自己的 為什麼不是兩次,而是輸出三次呢?1.首先onclick function.是dom0級事件處理程式,而addeventlistener是dom2級事件處理程式,這兩種屬於不同類,不會相互...

zabbix的action不觸發問題

在使用zabbix的action的時候,我遇到了乙個問題 定義的trigger可以觸發,然而定義的action卻始終不觸發 我使用的zabbix的版本是3.0.7 1.el7.x86 64,客戶端也是如此。然後就開始排錯 1使用者授權 把使用者所在的組授予監控該主機組可讀許可權 2media管理 檢...