摘要:是一個超快速的庫,最近一直在看的東西,考慮如何應(yīng)用到公司的項目中,模仿的方式二次封裝了一下。示例示例代碼在目錄啟動和原文發(fā)布一個基于二次封裝的包博客時空路由器
mprpc 是一個超快速的Python RPC 庫,最近一直在看 RPC 的東西,考慮如何應(yīng)用到公司的項目中,模仿 Celery 的方式二次封裝了一下。
項目地址: mprpc_config
安裝pip install mprpc_config用法
構(gòu)建一個如下的目錄結(jié)構(gòu)
config.py 包含RPC配置屬性(任意命名)
INSTALLED_APP 必填參數(shù),list 類型,將每一個包含 RPC 接口的模塊名放進(jìn)去
app_module_name RPC 接口模塊(任意命名,可有多個)
implement.py 接口模塊(任意命名,可有多個),里面包含 rpc 方法裝飾的接口函數(shù)
server.py RPC 服務(wù)器
初始化 mprpc_config 的 Configration 類,將 config.py 的模塊名 config 作為字符串傳入
導(dǎo)入 mprpc_config.rpc_server 的 RPCServer 和 StreamServer,啟動 RPC 服務(wù)器
使用 bind_class 方法將初始化后的所有 RPC 接口綁定給 RPCServer
使用 StreamServer 啟動 RPC 服務(wù)器
client.py RPC 客戶端(測試用,實際可分離)
客戶端啟動方式可參考 mprpc 。
示例示例代碼在 example 目錄
server.py
from mprpc_config.rpc_server import RPCServer, StreamServer from mprpc_config import rpc_config if __name__ == "__main__": print("-------start server--------") config = rpc_config.Configuration("config") config.bind_class(RPCServer) server = StreamServer(("127.0.0.1", 6000), RPCServer) server.serve_forever(stop_timeout=10)
client.py
from mprpc_config.rpc_client import RPCClient, RPCPoolClient from mprpc_config.rpc_client import RPCPool print("---------- client ----------") client = RPCClient("127.0.0.1", 6000) print("2 add 4: ", client.call("add", 2, 4)) print("2 plus 4: ", client.call("plus", 2, 4)) print("2 minus 4: ", client.call("minus", 2, 4)) print("---------- done ----------") print("---------- client pool ----------") client_pool = RPCPool(RPCPoolClient, dict(host="127.0.0.1", port=6000)) with client_pool.connection() as client: print("2 add 4: ", client.call("add", 2, 4)) print("2 plus 4: ", client.call("plus", 2, 4)) print("2 minus 4: ", client.call("minus", 2, 4)) print("---------- done ----------")
啟動 server 和 client
$ python server.py ---------- server ---------- $ python client.py ---------- client ---------- 2 add 4: 6 2 plus 4: 8 2 minus 4: -2 ---------- done ---------- ---------- client pool ---------- 2 add 4: 6 2 plus 4: 8 2 minus 4: -2 ---------- done ----------
原文:發(fā)布一個基于 mprpc_config 二次封裝的 pip 包
博客:時空路由器
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/44908.html
摘要:項目介紹是一個全新的語言的運行時環(huán)境,基于目前最新的進(jìn)行打造,支持最新的語言規(guī)范,同時提供了自己的運行時標(biāo)準(zhǔn)庫。同樣也在的基礎(chǔ)上進(jìn)行打造,實現(xiàn)了一個除開發(fā)之外的一個全新的運行環(huán)境。發(fā)布核心虛擬機的鏡像。整合運行時框架。 showImg(https://segmentfault.com/img/bVbnQXK); polarphp 項目介紹 polarphp是一個全新的PHP語言的運行時...
摘要:做數(shù)據(jù)分析,,你值得擁有。的包管理器有和,本來是很方便的。另外,本身還提供了包管理器來安裝或升級相應(yīng)的包。八斬刀是詠春中最厲害的兵器,是一條大蟒蛇,翻譯為水蟒。如果數(shù)據(jù)科學(xué)是武俠中的詠春,那么便是數(shù)據(jù)科學(xué)中的八斬刀。 摘要:武俠,是成人的童話。江湖,是門派的斗爭。數(shù)據(jù)科學(xué)已經(jīng)開山立派,Python便是其中獨領(lǐng)風(fēng)搔的兵器。如果數(shù)據(jù)科學(xué)是IT武俠中的詠春,那么Anaconda便是數(shù)據(jù)科學(xué)中...
摘要:本文為教程的第二部分,主要以微信控制器群發(fā)助手好友刪除檢測為例演示如何調(diào)用微信。教程流程簡介這一系列教程從如何分析微信協(xié)議開始,第一部分教你如何從零開始獲取并模擬擴展個人微信號所需要的協(xié)議。 現(xiàn)在的日常生活已經(jīng)離不開微信,本文將會拋磚引玉演示如何使用Python調(diào)用微信API做一些有意思的東西。 看完這一系列教程,你就能從頭開始實現(xiàn)自己關(guān)于微信的想法。 本文為教程的第二部分,主要以微信...
摘要:三實踐案例案例簡介分布式系統(tǒng)中,微服務(wù)基礎(chǔ)組件等,系統(tǒng)中間件,等,對常用功能配置等,進(jìn)行二次淺封裝并統(tǒng)一集成管理,以滿足日常開發(fā)中基礎(chǔ)環(huán)境搭建與臨時工具的快速實現(xiàn)。 一、背景簡介 分布式系統(tǒng)中存在很多拆分的服務(wù),在不斷迭代升級的過程中,會出現(xiàn)如下常見的棘手情況: 某個技術(shù)組件版本升級,依賴包升級導(dǎo)致部分語法或者API過期,或者組件修復(fù)緊急的問題,從而會導(dǎo)致分布式系統(tǒng)下各個服...
摘要:在只有少量服務(wù)器的情況下,大多數(shù)運維人員會選擇手動更新,減少自動化部署發(fā)布的開發(fā)成本。五自動化部署發(fā)布示例簡要說明下我們的項目如何使用實現(xiàn)了多個環(huán)境的自動化部署發(fā)布。 showImg(https://segmentfault.com/img/bVJEL6?w=500&h=250); 一、面臨的問題 一個完整的程序開發(fā)流程少不了部署發(fā)布這個環(huán)節(jié),而部署發(fā)布是一個重復(fù)的過程,最基本的操作包...
閱讀 3190·2021-11-10 11:35
閱讀 1295·2019-08-30 13:20
閱讀 1117·2019-08-29 16:18
閱讀 2131·2019-08-26 13:54
閱讀 2155·2019-08-26 13:50
閱讀 955·2019-08-26 13:39
閱讀 2473·2019-08-26 12:08
閱讀 1951·2019-08-26 10:37