鍍金池/ 問答/Java  PHP  網(wǎng)絡安全/ 請問swoole的異步任務實現(xiàn)過程

請問swoole的異步任務實現(xiàn)過程

想用swoole代替redis實現(xiàn)異步任務隊列。
根據(jù)官方文檔描述,swoole_client的異步非阻塞模式只有cli模式。
那么我們的程序代碼怎么利用它去投遞異步任務呢?
我的php是在fpm下的,比如一個場景是,用戶登錄后,我想發(fā)個短信給它的郵件地址。想把這個任務交給swoole異步處理,然后登錄程序能直接返回登錄成功,不要被這個短信請求給阻塞。

首先我知道要開一個server來處理任務。那么投遞任務的swoole_client調用這塊,從我的登錄代碼里開始怎么嵌入swoole的執(zhí)行流程呢?
看到網(wǎng)上有一些所謂的實例講解,但是都沒有明確說具體的調用實現(xiàn)過程... 感到不解
多謝!

回答
編輯回答
魚梓

1.開一個server來處理任務,綁定Task和Finish事件,server監(jiān)聽某個投遞任務的消息
2.php-fpm/apache環(huán)境下只能使用同步客戶端,向server發(fā)送個投遞任務消息,server收到后投遞任務
3.在server的Task事件中處理任務,任務處理完后觸發(fā)Finish事件,做一些任務完成后的操作。

可以參考LaravelS對于任務的隊列的封裝方式:異步的任務隊列

2017年2月21日 12:59