鍍金池/ 問答/PHP/ PHP 怎樣異步處理

PHP 怎樣異步處理

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

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

主要用兩個方法:

//這里寫同步代碼

fastcgi_finish_request();
set_time_limit(0);

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

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

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

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

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

可以采用pthread擴展

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

可以采用swoole一些擴展來實現(xiàn)

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

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

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

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

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

隊列或PHP擴展 thread 類來實現(xiàn)

2018年2月10日 01:40