日韩av免费一二三区-2021精品久久久久精品k8-亚洲红杏AV无码专区首页-99精品久久久久久水蜜桃

咨詢(xún)電話(huà):
15628812133
15
2025/03

低并發(fā),簡(jiǎn)單任務(wù)。PHP原生隊(duì)列,如何簡(jiǎn)單實(shí)現(xiàn)

發(fā)布時(shí)間:2025-03-15 15:26:49
發(fā)布者:已經(jīng)寫(xiě)了
瀏覽量:
0

之前說(shuō)到PHP的異步執(zhí)行,主要目的就是提升用戶(hù)體驗(yàn),減少用戶(hù)等待時(shí)間,后臺(tái)異步執(zhí)行代碼,畢竟只是簡(jiǎn)單的模擬異步,還是很容易出問(wèn)題的,所以這里改變一下思路,采用隊(duì)列來(lái)實(shí)現(xiàn),原理一樣,效果一樣,相對(duì)于模擬異步,這個(gè)更復(fù)雜一些,不如模擬異步來(lái)的簡(jiǎn)單粗暴。

隊(duì)列,常用于解耦任務(wù)處理,例如發(fā)郵件、處理圖片、生成報(bào)告等耗時(shí)操作,避免程序長(zhǎng)時(shí)間阻塞運(yùn)行,相對(duì)于模擬異步、使用隊(duì)列,效率更高,更可靠。

這里還是使用原生的方式去實(shí)現(xiàn)隊(duì)列的效果,先說(shuō)一下隊(duì)列實(shí)現(xiàn)的流程和邏輯:包括任務(wù)創(chuàng)建、存儲(chǔ)、處理、處理結(jié)果。在程序運(yùn)行到需要處理圖片,發(fā)郵件等耗時(shí)的功能時(shí)候,創(chuàng)建隊(duì)列任務(wù),隊(duì)列的任務(wù)包括任務(wù)類(lèi)型以及用到的數(shù)據(jù),存到數(shù)據(jù)庫(kù)中。這里其實(shí)也可以使用其他的存儲(chǔ)最好的應(yīng)該是使用Redis,但是我這個(gè)系統(tǒng)比較陳舊沒(méi)有安裝過(guò),就還是用數(shù)據(jù)庫(kù)。

另外執(zhí)行一個(gè)守護(hù)進(jìn)程,或者定時(shí)器任務(wù)用來(lái)定時(shí)運(yùn)行,運(yùn)行的內(nèi)容自然就是處理數(shù)據(jù)庫(kù)中的任務(wù),這里就可以記錄一下任務(wù)的執(zhí)行狀態(tài),如果失敗的話(huà)也可以監(jiān)控到,這里就是比異步執(zhí)行好的地方,可以監(jiān)控運(yùn)行狀態(tài),記錄處理結(jié)果,控制執(zhí)行的邏輯。

1、添加任務(wù)

低并發(fā),簡(jiǎn)單任務(wù)。PHP原生隊(duì)列,如何簡(jiǎn)單實(shí)現(xiàn)

2、處理任務(wù)

低并發(fā),簡(jiǎn)單任務(wù)。PHP原生隊(duì)列,如何簡(jiǎn)單實(shí)現(xiàn)

關(guān)鍵詞:
返回列表