Python XMLRPC之連鎖反應

 
利用XMLRPC套件可以完成電腦間資料的傳遞,正如之前所提到的文章,Java程式可以透過XMLRPC的方式將資料傳送給Python程式,讓Pyhton程式來處理並回傳資料給Java程式。今天要跟大家分享的東西並不是這個,如果對這項技術有興趣請參閱之前的文件。現在要跟大家討論的是如何將同樣的一個工作分散到不同機器或者是分散到不同的處理程序(Process不是Thread)進行資料處理,所應用的技術是XMLRPC。假設大家對Pyhotn程式語言有基本的認識,Python內建函式庫中有一個xmlrpcLlb的函式庫可以使用,利用這個函式庫就可以達到資料分散處理的目的。當然你也可以找到Python的SOAP函式庫同樣可以達到目的。
 
程式內容很簡單,包含一個主程式跟數個分散處理資料的子程式,主程式的名稱叫clientMain.py,其他子程式依據所開的port number來命名,60000.py表示port number=60000,以此類推,要執行這個程式,首先先將60000.py、60001.py....依序執行啟動,最後啟動clientMain.py的主程式,這個主程式會呼叫port number=60002下的echo這個函式,而port number=60002下的echo會叫用port number=60001下的echo,這樣往下叫下去,將原本的大問題拆解成數個小問題,個別擊破,當然你可以將60000.py放在一台電腦中執行,60001.py放在另一台電腦中執行,以達到分散處理的好處。
 
主程式(clientMain.py)
import xmlrpclib
server = xmlrpclib.ServerProxy("http://127.0.0.1:60002")
print server.echo()
 
其餘的程式 (60000.py)
import SimpleXMLRPCServer
def echo():
   return 'service 60000'

server = SimpleXMLRPCServer.SimpleXMLRPCServer(("127.0.0.1", 60000))
server.register_function(echo)
try:
   server.serve_forever()
except e:
   debug = e
 
 
創作者介紹
創作者 CJY0503 的頭像
CJY0503

程式設計者天堂

CJY0503 發表在 痞客邦 留言(0) 人氣()