開局一張圖蹲坷,內(nèi)容全靠編!R仂循签!
小編最近遇到一個需求(環(huán)境LNMP),分鐘級定時處理任務(wù)疙咸,還能自定義增減數(shù)據(jù)的數(shù)量以及開關(guān)啟動县匠。
說完之后,小伙伴們是不是有思路了呢撒轮,當(dāng)然方法有很多的乞旦,我先給大家列出來,之后大家選擇性去做题山。
(1)守護進程兰粉,寫一個PHP腳本,死循環(huán)(while(true))臀蛛,一直監(jiān)聽,然后能寫一個sleep睡上自定義的時間進行處理
(2)那就要swoole上場了崖蜜,有一個秒級的定時任務(wù)浊仆,當(dāng)然這個還需要安裝swoole擴展,有條件的小伙伴可以試試
(3)這個是我實現(xiàn)的思路(crontab)豫领,linux原聲的處理方法抡柿,當(dāng)然這個只能設(shè)置分鐘級(但是已經(jīng)完全符合我的需求了)
那在下就出招了:
首先我們寫一個配置方法,專門用來設(shè)置幾分鐘執(zhí)行一次等恐,處理多少條數(shù)洲劣,是否開啟
之后我們就要寫一個處理方法
其中status就是開關(guān)的狀態(tài),1就是開啟课蔬,0就是關(guān)閉囱稽,之后還有一個time字段,這個就是做時間處理的二跋,比如設(shè)置了3分鐘執(zhí)行一次战惊,那么就在配置里面time字段設(shè)置當(dāng)前時間加上3分鐘之后,這樣就能滿足需求扎即,當(dāng)然下面的邏輯根據(jù)你的實際需求完全可以自定義處理吞获。
比如我們查詢處理多少條况凉,或者處理哪些數(shù)據(jù),我們都可以在配置那里進行配置各拷,之后查詢配置條件刁绒,進行處理對應(yīng)的數(shù)據(jù)。
最后就是在linux里面配置crontab了
當(dāng)然了烤黍,這個只是一個簡單的示例知市,海量級數(shù)據(jù),需要怎么處理蚊荣,還是需要大家自己進行思考來做業(yè)務(wù)處理初狰,這個暫時比較適合中少量數(shù)據(jù)處理
最后偷偷問一句,你們開工了嗎互例?