如題:
其实大概就是想在打开一个页面的时候,再通过api去触发一个程序,但是这个程序执行的比较慢,我不想在页面里理会它的执行和返回,触发请求之后直接就继续执行后面的代码,请问大家,这种情况时具体用php代码应该如何实现?
闭关修行中......
@dawnblog 說的方法誠然是可以的,但是題主的需求只需要用fsockopen簡單地觸發一下就可以了,並不需要處理回調數據.
fsockopen
參考: http://www.laruence.com/2008/...
這樣告訴你吧,如果你想異步出發程序不是不可以,用socket就可以實現具體實施的步驟1.發送指令到socket伺服器上2.socket接收指令,通過長鏈接的方式,異步發送命令到另外一個任務處理伺服器上3.socket直接告知web伺服器收到指令並執行,但任務透過任務處理伺服器來執行. ---- 這一步,相當於ajax異步執行4.任務處理伺服器完成後,發送完成指令到socket伺服器上.5.由socket伺服器完成指定的任務完成邏輯.在第5步中可以細化,當然了,我對於異步是這樣處理的,如果有其他更好的方式請指出不足指出.以上程式碼具體實作請查看workman
小伙子,老夫傳授給你兩字真言:隊!列!
如果時效性不強的話。推薦快取起來
fastcgi_finish_request()可以滿足你,php-fpm才支援。 。或是搞個隊列服務
php連異步回呼都沒有嗎?哎
swoole進程管理不一樣的PHP 參見swoole進程管理
這不就是非同步傳輸技術嗎?不使用socket也可以的吧
@dawnblog 說的方法誠然是可以的,但是題主的需求只需要用
fsockopen
簡單地觸發一下就可以了,並不需要處理回調數據.參考: http://www.laruence.com/2008/...
這樣告訴你吧,如果你想異步出發程序不是不可以,用socket就可以實現
具體實施的步驟
1.發送指令到socket伺服器上
2.socket接收指令,通過長鏈接的方式,異步發送命令到另外一個任務處理伺服器上
3.socket直接告知web伺服器收到指令並執行,但任務透過任務處理伺服器來執行. ---- 這一步,相當於ajax異步執行
4.任務處理伺服器完成後,發送完成指令到socket伺服器上.
5.由socket伺服器完成指定的任務完成邏輯.
在第5步中可以細化,當然了,我對於異步是這樣處理的,如果有其他更好的方式請指出不足指出.
以上程式碼具體實作請查看workman
小伙子,老夫傳授給你兩字真言:隊!列!
如果時效性不強的話。推薦快取起來
fastcgi_finish_request()可以滿足你,php-fpm才支援。 。或是搞個隊列服務
php連異步回呼都沒有嗎?哎
swoole進程管理不一樣的PHP 參見swoole進程管理
這不就是非同步傳輸技術嗎?不使用socket也可以的吧