鍍金池/ 問(wèn)答/PHP/ PHP 怎樣異步處理

PHP 怎樣異步處理

我寫了個(gè)sleep10秒 但是一觸發(fā)其他腳步地方都跟著延遲 請(qǐng)問(wèn)怎么樣不堵塞的情況下正常執(zhí)行?

回答
編輯回答
卟乖
如果你用nginx,可以利用fastcgi處理

主要用兩個(gè)方法:

//這里寫同步代碼

fastcgi_finish_request();
set_time_limit(0);

//這里寫異步代碼
2018年2月21日 06:57
編輯回答
安淺陌

PHP本身不支持異步,可以借助 Redis 隊(duì)列或?qū)I(yè)的隊(duì)列服務(wù),把耗時(shí)的操作放入隊(duì)列中異步執(zhí)行。

2017年8月21日 13:52
編輯回答
風(fēng)清揚(yáng)

PHP本身是不支持異步,但你可以用協(xié)程去實(shí)現(xiàn)!

2018年5月19日 19:34
編輯回答
歆久

可以采用pthread擴(kuò)展

2018年8月20日 23:34
編輯回答
不討喜

可以采用swoole一些擴(kuò)展來(lái)實(shí)現(xiàn)

2018年1月11日 22:53
編輯回答
笨尐豬

如果你這個(gè)異步處理不是立馬要處理結(jié)果,你可以把要異步處理或者比較耗時(shí)的處理抽出來(lái),單獨(dú)放在一個(gè)action里。再在代碼里面curl里面請(qǐng)求這個(gè)鏈接,超時(shí)時(shí)間設(shè)為1s(php curl最短只能設(shè)置為1s),設(shè)置不獲取結(jié)果。。。

2018年1月11日 14:11
編輯回答
九年囚

建議使用隊(duì)列實(shí)現(xiàn),主流的PHP框架(thinkphp,laravel等)基本都集成了隊(duì)列功能或擁有成熟的隊(duì)列插件,穩(wěn)定且易于使用。不用自己去從0開(kāi)發(fā)。

2018年8月19日 12:35
編輯回答
毀了心

隊(duì)列或PHP擴(kuò)展 thread 類來(lái)實(shí)現(xiàn)

2018年2月10日 01:40