開局一張圖,內容全靠編!!!
小編最近遇到一個需求(環境LNMP),分鐘級定時處理任務,還能自定義增減數據的數量以及開關啟動。
說完之后,小伙伴們是不是有思路了呢,當然方法有很多的,我先給大家列出來,之后大家選擇性去做。
(1)守護進程,寫一個PHP腳本,死循環(while(true)),一直監聽,然后能寫一個sleep睡上自定義的時間進行處理
(2)那就要swoole上場了,有一個秒級的定時任務,當然這個還需要安裝swoole擴展,有條件的小伙伴可以試試
(3)這個是我實現的思路(crontab),linux原聲的處理方法,當然這個只能設置分鐘級(但是已經完全符合我的需求了)
那在下就出招了:
首先我們寫一個配置方法,專門用來設置幾分鐘執行一次,處理多少條數,是否開啟
之后我們就要寫一個處理方法
其中status就是開關的狀態,1就是開啟,0就是關閉,之后還有一個time字段,這個就是做時間處理的,比如設置了3分鐘執行一次,那么就在配置里面time字段設置當前時間加上3分鐘之后,這樣就能滿足需求,當然下面的邏輯根據你的實際需求完全可以自定義處理。
比如我們查詢處理多少條,或者處理哪些數據,我們都可以在配置那里進行配置,之后查詢配置條件,進行處理對應的數據。
最后就是在linux里面配置crontab了
當然了,這個只是一個簡單的示例,海量級數據,需要怎么處理,還是需要大家自己進行思考來做業務處理,這個暫時比較適合中少量數據處理
最后偷偷問一句,你們開工了嗎?