Swoole Task Worker 進(jìn)程

Task 進(jìn)程是swoole當(dāng)中獨立于worker進(jìn)程的一個工作進(jìn)程,用于處理一些耗時較長的邏輯。這些邏輯在處理的過程中,并不會影響到task進(jìn)程處理來自客戶端的請求,因此大大提高了系統(tǒng)并發(fā)的能力。

兩個進(jìn)程之間的關(guān)系如圖:

\1.PNG
\1.PNG

Task進(jìn)程和worker進(jìn)程間通過Unix Sock管道進(jìn)行通信(也可配置通過消息隊列進(jìn)行通信),task的消息傳遞只能傳遞字符串。

Task常見問題:
1、task傳遞數(shù)據(jù)大小
數(shù)據(jù)小于8K,直接通過管道傳遞;數(shù)據(jù)大于8K,寫入臨時文件傳遞

2、task傳遞對象
可以通過序列化傳遞一個對象的拷貝
task進(jìn)程中對對象的改變不會反映到worker進(jìn)程中
數(shù)據(jù)庫連接,網(wǎng)絡(luò)連接對象不可傳遞

3、task的onFinish回調(diào)

task的onFinish回調(diào)會發(fā)回回調(diào)task方法的worker進(jìn)程(就是只會返回給投遞者的進(jìn)程)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容