做一個分鐘級的靈活自定義定時處理方法


做一個分鐘級的靈活自定義定時處理方法

開局一張圖,內容全靠編!!!

小編最近遇到一個需求(環境LNMP),分鐘級定時處理任務,還能自定義增減數據的數量以及開關啟動。

說完之後,小夥伴們是不是有思路了呢,當然方法有很多的,我先給大家列出來,之後大家選擇性去做。

(1)守護進程,寫一個PHP腳本,死循環(while(true)),一直監聽,然後能寫一個sleep睡上自定義的時間進行處理

(2)那就要swoole上場了,有一個秒級的定時任務,當然這個還需要安裝swoole擴展,有條件的小夥伴可以試試

(3)這個是我實現的思路(crontab),linux原聲的處理方法,當然這個只能設置分鐘級(但是已經完全符合我的需求了)

做一個分鐘級的靈活自定義定時處理方法

那在下就出招了:

首先我們寫一個配置方法,專門用來設置幾分鐘執行一次,處理多少條數,是否開啟

做一個分鐘級的靈活自定義定時處理方法

之後我們就要寫一個處理方法

做一個分鐘級的靈活自定義定時處理方法

其中status就是開關的狀態,1就是開啟,0就是關閉,之後還有一個time字段,這個就是做時間處理的,比如設置了3分鐘執行一次,那麼就在配置裡面time字段設置當前時間加上3分鐘之後,這樣就能滿足需求,當然下面的邏輯根據你的實際需求完全可以自定義處理。

比如我們查詢處理多少條,或者處理哪些數據,我們都可以在配置那裡進行配置,之後查詢配置條件,進行處理對應的數據。

最後就是在linux裡面配置crontab了

做一個分鐘級的靈活自定義定時處理方法

當然了,這個只是一個簡單的示例,海量級數據,需要怎麼處理,還是需要大家自己進行思考來做業務處理,這個暫時比較適合中少量數據處理

做一個分鐘級的靈活自定義定時處理方法

最後偷偷問一句,你們開工了嗎?

做一個分鐘級的靈活自定義定時處理方法


分享到:


相關文章: