查了官方文檔和社區(qū)的討論,一直沒搞清楚的如何獲取異步任務(wù)的返回值。我現(xiàn)在使用webman提供一個(gè)http接口,該功能需要實(shí)現(xiàn)以下:
去ES的A索引中查詢數(shù)據(jù)
去數(shù)據(jù)庫中查詢
去ES的B索引中查詢數(shù)據(jù)
以上三步IO沒有次序,我想可以用多進(jìn)程的思路來提高并發(fā)量。
如果是在其他php-cli環(huán)境下,我可以fork三個(gè)子進(jìn)程,然后阻塞父進(jìn)程等待三個(gè)子進(jìn)程的返回,得到三個(gè)子進(jìn)程的返回后,父進(jìn)程統(tǒng)一組裝數(shù)據(jù)響應(yīng)給調(diào)用方。
但是在webman中如何實(shí)現(xiàn)呢?
我看文檔中有說明可以創(chuàng)建帶監(jiān)聽的task進(jìn)程,然后控制器中使用異步TCP客戶端的方式去投遞任務(wù),然后在異步TCP客戶端的回調(diào)中獲取返回結(jié)果,但是這種情況下我在控制器這個(gè)主進(jìn)程怎么阻塞等待三個(gè)任務(wù)的返回?。?