我正在尋找一種方法來防止多個主機同時發出命令到Python XMLRPC偵聽器。偵聽器負責運行腳本以在該系統上執行任務,如果多個用戶同時嘗試發出這些命令,該任務將失敗。有沒有辦法阻止所有傳入的請求,直到單個實例完成?Python XMLRPC與併發請求
7
A
回答
15
我覺得Python SimpleXMLRPCServer模塊是你想要的。我相信該模型的默認行爲是在當前請求正在處理時阻止新的請求。默認行爲給了我很多麻煩,我通過在ThreadingMixIn類中混合來改變這種行爲,以便我的xmlrpc服務器可以在同一時間響應多個請求。
class RPCThreading(SocketServer.ThreadingMixIn, SimpleXMLRPCServer.SimpleXMLRPCServer):
pass
如果我正確理解你的問題,SimpleXMLRPCServer是解決方案。只需直接使用它。
+0
+1,這是完美的! – 2009-10-21 10:48:12
0
0
有以下幾種選擇:
- 使用單進程,單線程服務器一樣
SimpleXMLRPCServer
隨後處理請求。在線程服務器中使用threading.Lock()
。 - 您在多進程服務器中有一些外部鎖定機制(如
lockfile
模塊或mysql中的GET_LOCK()
函數)。
相關問題
- 1. 使用Java發送XMLRPC請求
- 2. 併發請求瓶蟒python
- 3. Android OpenERP搜索請求XMLRPC
- 4. Http請求/併發?
- 5. Openresty併發請求
- 6. 的併發請求
- 7. Symfony2請求併發
- 8. 發送與cookies的請求[python]
- 9. python請求無法發送https請求
- 10. python請求網址並行
- 11. 打印python發佈請求
- 12. Python請求發佈表格
- 13. Zend_Session_SaveHandler_DbTable和併發請求
- 14. 併發捲曲POST請求
- 15. 併發PHP和MySQL請求
- 16. PHP併發HTTP請求?
- 17. XML POST與Python請求
- 18. Python請求與PyCurl性能
- 19. Python的HTML POST與請求
- 20. Python-請求發佈請求失敗,發生在403 Forbidden
- 21. 觸發與REST API請求
- 22. Python,Django ---我怎樣才能發送HTTP請求與多線程並行
- 23. Python:嘗試使用請求登錄並執行HTTP請求
- 24. 與瓶子發佈請求錯誤
- 25. 使用Python請求模塊發出SOAP請求
- 26. 使用Python請求lib返回狀態的發佈請求405
- 27. 如何使用Python請求庫進行發佈請求?
- 28. 如何發送通過URL連續請求:Python的請求
- 29. 如何使用Python請求發出POST請求
- 30. Python請求在POST請求中發送Content-Length 0
客戶是否知道衝突矩陣?他們是否應該足夠聰明,按照這個矩陣來安排自己?他們的活動如何同步等... – jldupont 2009-10-19 15:19:42
你使用SimpleXMLRPCServer,因爲我認爲這是單線程... – SeriousCallersOnly 2009-10-19 16:23:39
我使用的是SimpleXMLRPCServer,但它似乎可以從不同的主機同時啓動相同的命令,這就是我需要防止 – MattB 2009-10-19 17:18:42