以前沒用過協(xié)程,有點(diǎn)好奇。。。
php已安裝Swoole擴(kuò)展,webman2.1里也已開啟Swoole協(xié)程,并且啟動(dòng)成功!
項(xiàng)目里有個(gè)[發(fā)送郵件]方法,用的PHPMailer包,那么我發(fā)送郵件時(shí)是不是【異步】方式?
第一次使用協(xié)程,可能描述的不恰當(dāng),請(qǐng)大佬賜教!
這里可以使用協(xié)程異步方式。協(xié)程的好處就是把一些業(yè)務(wù)異步方式(以前這部分就要使用消息隊(duì)列實(shí)現(xiàn)(PHP))。比如注冊(cè)成功后,發(fā)送郵箱信息;就可以用異步。
Coroutine::create(function(){
Timer::sleep(1.5);
echo "hello coroutine\n";
});
官方給了協(xié)程例子測(cè)試下就知道了。php協(xié)程還沒有使用過我只是使用過go的協(xié)程,那真是美滋滋
嗯嗯,感謝兩位回復(fù)!swoole文檔里【Swoole4 或更高版本擁有高可用性的內(nèi)置協(xié)程,可以使用完全同步的代碼來實(shí)現(xiàn)異步 IO,PHP 代碼沒有任何額外的關(guān)鍵字,底層會(huì)自動(dòng)進(jìn)行協(xié)程調(diào)度】,很神奇~
經(jīng)測(cè)試在swoole6的情況下,一些涉及到curl的操作并不能簡(jiǎn)單的一鍵協(xié)程化,各種報(bào)錯(cuò)。所以針對(duì)一些第三方庫(kù)還是要改造
看了下webman協(xié)程代碼,以及swoole文檔:https://wiki.swoole.com/zh-cn/#/coroutine
貌似不需要專門改造第三方包,業(yè)務(wù)代碼寫在這里面就OK了。
// 創(chuàng)建協(xié)程
Coroutine::create(function(){
// 你的業(yè)務(wù)代碼,比如發(fā)送郵件
});