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