我有一個從excel導入數據到數據庫的函數,我讓這個函數在服務器上運行,所以這個函數不需要再與客戶端交互,客戶端web瀏覽器只需要將excel文件上傳到服務器,之後,任務將在服務器上運行,所以如果瀏覽器關閉客戶端,該功能仍然運行在服務器上,我有這個問題是,當瀏覽器是隻要功能仍然處於活動狀態,瀏覽器將加載。如何讓瀏覽器不要等待服務器響應,以便在服務器上運行該進程時瀏覽器不會加載。請幫助我。PHP:如何運行與主進程分開的進程
0
A
回答
2
使用message queue可以將文件處理任務從Web服務器卸載到單獨運行的另一個守護程序。
0
您可以在命令行中使用進程的廉價且簡單的路徑exec
,導致它後臺運行。但是,這給你很少的控制/狀態。
IMO的正確方法是將這些長時間運行的任務排隊到數據庫中,並將一些狀態信息與它們關聯起來。然後有一個獨立於您的Web服務器運行的專用進程,檢查數據庫的任務並執行它們,以成功/失敗狀態更新數據庫。
0
考慮使用一個隊列,如Mseven的隊列插件:
或者,如果你想要一個更基於守護工作,看看Beanstalkd。儘管如此,mseven的隊列插件是非常自我解釋的。遠離使用&分叉進程,它可能會失去控制。
相關問題
- 1. 斷開與正在運行的進程
- 2. 運行主進程爲child_process
- 3. 如何從PHP運行進程
- 4. 運行php-cgi進程
- 5. 如何在PHP和Shell中返回後運行主進程
- 6. 如何運行進程?
- 7. 電子 - 主進程與渲染進程
- 8. Qt進程如何與正常的Linux進程進行通信?
- 9. 如何將pid從一個PHP進程與另一個進程進行通信?
- 10. 從主進程執行多個進程
- 11. 如何在結束Android主進程後讓進程永遠運行
- 12. 如何對進程中的信號進行順序分配如何運行
- 13. 硒離開正在運行的進程?
- 14. 商業PHP腳本,長時間運行的進程。守護進程與cronjobs?
- 15. 如何讓Python進程以正確的進程名稱運行?
- 16. Python:在Windows主機中運行進程
- 17. Nginx運行時沒有主進程
- 18. 在主Web進程中運行delayed_job
- 19. 確保nginx主進程保持運行
- 20. 如何與分叉後臺進程進行通信/接口?
- 21. 如何從遠程主機訪問主機上泊塢窗運行的進程
- 22. 運行PHP的exec()異步/多進程
- 23. 運行PHP進程的當前活動
- 24. 運行多進程
- 25. 與fork並行運行子進程
- 26. 如何區分一個子進程與其他子進程
- 27. 如何以64位進程運行IIS進程(w3wp.exe)
- 28. 如何確定一個進程是由進程名運行
- 29. Docker - 如何將mongodb進程作爲守護進程運行
- 30. 如何同時運行子進程和父進程
感謝您的回覆,您可以給我一些教程或示例如何使用此消息隊列? – user1290932 2012-04-02 07:52:14