我期待運行一個可以傳遞輸入的python解釋器的持久化實例。整個系統設計用PHP編寫。我注意到了Pheanstalk包在beanstalkd工作隊列上的使用。有沒有人使用Pheanstalk來生成(並維護)一個持久化進程?我明白,Pheanstalk的常見用途是運行腳本或其他任務,這些腳本或任務需要花費很長時間才能完成異步處理,以避免用戶在等待。我期望異步地擁有一個Pheanstalk作業/進程,它管理和維護一個我可以將輸入傳遞給的Python解釋器進程。這是否可行/是否已經完成,如果是這樣,如何?Pheanstalk問題
4
A
回答
4
我肯定運行使用Pheanstalk的持續隊列工作。它的工作原理如下:
父PHP過程分叉指定數量的工作進程。每個工人都使用Pheanstalk連接beanstalkd並等待工作。當一名工人獲得工作時,它會執行任務,然後退出,釋放自己的記憶。父PHP過程然後產生一個新的工人來替換它。
您的要求聽起來更像是這樣的:
父PHP進程使用proc_open()叉Python解釋器過程中,存儲所創建的標準輸入和標準輸出管道的引用。然後父級PHP進程進入一個循環,使用Pheanstalk連接到beanstalk並保留下一個任務。當作業被保留時,PHP使用fwrite()將作業內容發送到python STDIN管道,然後使用fread()從pythons STDOUT管道讀取響應。
這是假設你想維護一個正在運行的python進程,而不是每次保留一個作業時激活一個新的python進程。
瘋狂的方式,但它可能工作。
的理智的辦法是使用一個Python beanstalkd客戶端,但是,嘿,很高興地看到越來越多的人使用Pheanstalk :)
乾杯, 保羅
相關問題
- 1. 與Pheanstalk
- 2. 致命錯誤:未找到類'Pheanstalk \ Pheanstalk'
- 3. pheanstalk快速搜索工作
- 4. pheanstalk和青苗功能
- 5. Pheanstalk queueng列表保留PHP
- 6. beanstalkd + pheanstalk倉促條件
- 7. 如何在PHP中加載Pheanstalk?
- 8. Beanstalk + Pheanstalk延遲現有作業
- 9. Pheanstalk保留相同的beanstalkd作業兩次或更多
- 10. Beanstalkd(通過pheanstalk)允許重複,同時儲備?
- 11. JOB_ID NOT FOUND異常在PHP中使用pda/pheanstalk在Laravel 4.2 Beanstalkd
- 12. Beanstalkd/Pheanstalk - 無論如何都能讓它工作! (WAMP/PHP/LARAVEL)
- 13. pheanstalk useTube() - >把()函數,不等待響應
- 14. Cocos2d問題/問題
- 15. XSLT問題問題
- 16. 問題的Response.Write問題
- 17. 問題計算器問題
- 18. UIView touch問題/問題
- 19. Backbone EventAggregator問題和問題
- 20. Android NDK問題pthread_mutex_unlock問題
- 21. 安裝Blackfire問題問題
- 22. Python問題new_word問題
- 23. 多對多問題/問題!
- 24. Bootstrap問題,菜單問題
- 25. 問題與PHP foreach問題
- 26. IE問題有問題 - CSS
- 27. 鎖定問題問題
- 28. OCUnit鏈接問題問題
- 29. Ant問題包裝問題
- 30. 問題:jqgrid雙頭問題
嘿paradox870,沒有這個幫助回答你的問題?接受或upvote會很好。乾杯。 – 2011-08-31 00:52:51
嘿保羅很好的答案。我開始使用pheanstalk並且自己也有一些疑問。我提出了一個問題,你能否讓我對此有所瞭解? http://stackoverflow.com/questions/37370688/pheanstalk-and-beanstalk-functions – Webeng 2016-05-22 19:41:46